栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(《C和指针》阅读计划-----小知识点总结p1:数据)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(《C和指针》阅读计划-----小知识点总结p1:数据)

1.尽管设计char类型变量的目的是为了让他们容纳字符型值,但其本质上是小整型值。缺省(默认状态)下的char要么是signed char要么是unsigned char,取决于编译器,这个事实意味着不同的机器上的char可能有不同范围的值,所以只有当程序所使用的char型变量的值位于signed char 和unsigned char的交集中时,这个程序才是可移植的,例如ascii码值都是位于这个范围内的。另外,只有当char类型变量显式声明为signed或unsigned时,才对他进行算术运算。

2.可以通过在某些整型字面值的后面添加一个后缀来改变其数据类型。比如在整数字面值的后面添加L或者l,可以使这个整数被解释为long整型值,加上U或者u则用于把数值指定为unsign类型。注意:字符常量后面不能添加unsigned或者long后缀。

3.枚举类型. 

enum Stu
{
    NAME,
    GENDER,
    GRADE,
    ...
    
    //NAME=16,对NAME赋值
}    //默认值分别为0 1 2,如果对NAME赋值16,那么默认值分别为16 17 18

 4.浮点类型:计算机储存浮点类型的数据,通常是一个小数和一个以某个假定数为基数的指数组成,例如:.3243F * (16 ^ 1)        .110010010000111111 * (2 ^ 2)

5.指针是地址的另外一种叫法,指针变量就是地址变量,平时我们口中的"指针"实际上是指针变量。C语言对于指针的限制少,给编程者带来很大自由的同时也带来巨大的风险

6.局部变量在每次创建时占用的地址可能相同,也可能不同。所以每次对创建的局部变量取地址得到的结果是不确定的。

7.字符串常量和指针常量的联系:在程序中使用字符串常量会生成一个"指向字符的常量指针"(通常指向字符串的第一个字符)。当一个字符串常量出现于一个表达式中,表达式所使用的值就是这些字符所存储的地址,而不是这些字符自身。因此,可以把字符串常量赋值给一个"指向字符的指针",后者指向这些字符储存的地址。但是,不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。

8.关于数组要不要检验越界:①如果数组的下标值是从那些已知的正确的值计算得来,那么就无需检查他的值。②如果一个用作数组下标的值是根据某种方法从用户输入的数据产生而来的,那么在使用它之前必须进行检测,确保他们位于有效的范围以内。

9.声明指针需要注意的:如果要同时声明a b c 三个指针变量,应该是int *a, *b, *c  而不是int* a, b, c

10.用typedef而不是#define来定义类型,因为#define无法识别指针

11.避免在嵌套的代码块中出现相同的变量名。

12.标识符的作用域与他的链接属性有关,但这两个属性并不相同。链接属性有3种——external(外部)、internal(内部)和none(无)。没有链接属性的标识符(none)总是被当作单独的个体,也就是说该标识符的多个声明被当作不同的实体。属于internal链接属性的标识符在同一个源文件内的所有声明中都指向同一个实体,但位于不同源文件的多个声明则分属不同的实体。最后,属于external链接属性的标识符不论被声明多少次,位于几个源文件都表示一个实体。

13.static可以修改标识符的链接属性。详细见前面博客。

14.register关键字:register是寄存器的意思,在变量声明前加上register就是寄存器变量。但是编译器不一定要理睬register关键字,如果大量的变量被声明为register,它只选取前几个数值储存在寄存器中,其余的按照自动变量处理。在许多机器的硬件实现中,并不为寄存器指定地址,所以寄存器变量大多不能取地址。

15.能否用include代替extern关键字来声明外部函数:假如我们在one.c源文件里面定义一个函数one(),那么在main.c中我们能不能不写extern,用#include"one.c"来声明one()函数。答案是,不能。因为c语言规定:不允许有同名的外部函数。这样做的结果就是,程序在链接的时候会出错。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号