我要学c第一天b

来源:互联网 发布:工业设计三维软件 编辑:程序博客网 时间:2024/05/21 10:20
 

1:没有显式说明情况下,enum类型中第一个枚举名的值为0,第二个为1,后面成递增趋势,也可以指定部分枚举名的值,而后面依然递增

2:不同枚举中的名字必须互不相同,同一枚举中不同的名字可以具有相同的值

3:如果变量不是局部变量,那么只能初始化一次,而且初始化表达式必须是常量表达式

4:每次进入函数,显式初始化的自动变量都被初始化一次,初始化表达是可以是任意表达式

5:默认情况下,外部变量和静态变量将被初始化为0,未经显式初始化的自动变量为未定义值

6:const限定的变量的值不能改变,对于数组则数组中的所有元素的值都不能修改

7:const也可以配合数组参数使用:表示函数不能修改数组元素的值:int strlen(const char[]);

8:整数除法会截断结果的小数部分

9:取模运算不能用于float和double型

10:算术运算符:同一优先级从左往右结合  优先级:一元运算符([正、负])>二元运算符([乘、除、取模]>[加、减]),中括号里的属于同一优先级

11:关系元算符优先级低于算术运算符,优先级:[等于、不等于]  >[大于、大于等于、小于、小于等于] 

12:逻辑运算符:&& 和||   左结合 优先级:&& > ||  二者都比关系运算符低

13:!=  优先级高于赋值运算符 =

 14:在关系表达式中和逻辑表达式中,如果关系为真,则表达式的结果值为1,如果为假,则表达式的结果值为0

15:逻辑运算符!的作用是将非0的操作数转换为0,将操作数0转换为1,用于类似结构:if(!valid) (如果不是有效的)

16:自动转换是将 比较窄的操作数转换为比较宽的操作数,并且不丢失信息的转换

17:表达式中float类型操作数不会自动转换为double型

18:当较长的整数转换为较短的整数或者char类型时,超出的高位部分将被丢弃

19:由于函数传递的参数是表达式,所以把参数传递给函数的时候也可能进行类型转换,在没有函数原型的情况下,char和short都被转换为int类型,float类型将被转换为double类型,因此即使被调函数的参数是char或者float型,我们也把函数声明为int或者double类型

20:通常情况下,参数是通过 函数原型声明的,这样函数被调用时,声明将对参数进行强制转换

21:自增自减运算符只作用于变量,(i+j)++是非法的

22:赋值运算符:op= 简洁便于理解,产生高效代码

23:条件运算符优先级很低仅高于赋值运算符:  expr1 ? expr2 : expr3  ............z = (a > b) ? a : b; /* z = max(a, b) */

原创粉丝点击