1. 逗号运算符
逗号可以作为分隔符也可作为运算符,当作为运算符时
表达形式:表达式1,表达式2,表达式3…表达式n
gg
运算过程:先计算表达式1的值,然后计算表达式2的值…最后计算表达式n,并把表达式n的值作为逗号表达式的值,将表达式n的类型作为逗号表达式的类型
2. 强制转换以及小括号的优先级
b=0.0
由于小括号优先级很高,先执行1/a,得0,再转换成float型
如果是(float)1/a,就可以得到0.5,这里会先把1转成浮点型(和C差不多道理),然后浮点型和整型运算,会自动把整型转换成浮点型。
强制类型转换会转换最近的一个值
3.
C里面不能直接写2进制数字的,11转换为10进制就是3.
4.静态变量和自动变量
C语言中使用auto (可省略)关键字声明自动变量,使用static关键字声明静态变量。
在函数中定义局部变量时,如果没有被声明为其他类型的变量都是自动变量。在编写代码时,有时需要在调用函数中的某个局部变量以后,这个变量的值不消失,并且保持原值不变,也就是该函数所占用的存储空间不被释放,在下次调用该函数时,变量中的值是上次调用该函数结束时变量的值。这时,使用的变量类型是静态变量,使用static 关键字进行声明。
静态变量与自动变量的区别主要表现在:
Ⅰ)空间分配:静态存储类型的局部变量是在静态存储区内分配内存单元,在程序的整个运行期间内都不释放空间。而自动类型的局部变量属于动态存储类型,是在动态存储区内分配存储单元的,函数调用结束后存储单元即被释放。
Ⅱ)静态局部变量是在编译时赋初始值,并且只赋一次初值,在以后每次调用函数时,只是使用上一次函数被调用结束时变量的值。而自动局部变量的初值不是在编译时赋予的,而是在函数调用时赋予的,每调用一次函数都会对变量重新赋一次初值。
Ⅲ)如果调用的静态局部变量没有对其进行赋值,则该变量的默认值为0后者为空字符串。而对于自动局部变量来说,如果不赋值,则变量的值是一个不确定的值,这是因为在函数被调用时,会为该变量分配一个存储空间,在函数结束时,存储空间被释放,这两次分配的存储空间是不一样的,存储空间中的值也是不确定的。
5.e
2e6
e前面一定要有数据 可以小数可以整数 e后面一定是整数
这个是科学记数法
这个默认是double类型的数字
但是定义数组的时候,只能用整形的数据去定义,不能用double类型定义,所以你可以写(int)2e6(把这数字强制转换成int