在前文中了解到字符串的结尾是 \0 来作为结束的标志,那么也许会有初学者在用strlen计算字符串长度时产生疑惑,\0是否要被计算其中。
结果是不要的,只计算\0之前的字符。
C语言中有许多的数据类型,它们被分为内置数据类型与自定义数据类型。
在内置数据类型中有以下8种。
char short int long long long float double _Bool/bool
其中_Bool 和 bool 作为布尔类型可以相互替换。
在布尔类型中,0表示假,非0表示真,它专门用来描述真假。
size of 用来计算类型或表达式的大小(计算结果以字节为单位),size of的返回值为无符号数。
因此我们可以利用 此函数得出各个内置数据类型的大小。
其中 long 被规定 >= int , 因此在不同的编译器的初始值有可能不同。
当用size of 计算表达式大小时,表达式本身不进行计算,计算所得大小取决于表达式被赋值的类型。
可以看到在计算第一个表达式(a = b+1)时,结果时8,因为此时long long型的a作为被赋值数,它的大小是8,因此答案是8。
所以第二个表达式算出short型的表达式大小为2.
signed 关键字,表示?个类型带有正负号,包含负值。
unsigned 关键字,表示该类型不带有正负号,只能表示零和正整数。
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。 由于这是默认情况,关键字 signed ?般都省略不写,但是写了也不算错。
同时,unsigned int 可用来扩大int 的最大正数, int 的数据范围是在(-32768~32767),而用unsigned int后,就变为了(0~32768+32767).。
全局变量定义在主函数之外,整个工程都可被调用。
局部变量被定义在一个{}中,只在所在的{}中有效应。
当全局变量与局部变量同名时,优先使用局部变量的值。
全局变量被创建后放在内存静态区,局部变量被放在内存栈区。