C-声明,赋值

声明

所有变量都必须声明后使用。
一个声明指定一种变量类型,后面所带的变量表可以包含一个或多个该类型的变量,以逗号分隔。
一旦声明就为其在存储区划定了指定类型大小的区域。
还可以在声明的同时进行初始化(即赋值)。

赋值

赋值操作是一个表达式,并且具有一个值,即赋值后左边变量保存的值。
赋值结合次序是从右往左。
如:
i = j = k = 0; 等价于 i = ( j = ( k = 0) );

ps:
对于字符数组以字符串进行赋值
char s[] = “abc”;
实际上sizeof(s) = 4,自动在“abc”后加上了’\0’,’\0’用来指示字符串的结束。
若:char s[5] = “abc”;
则sizeof(s) = 5,是指定的大小,在“abc”后补足‘\0’,即“abc”后是’\0”\0’
若:char s[4] = “abc”;
则sizeof(s) = 4,自动在“abc”后面加上‘\0’。
若:char s[3] = “abc”;
则sizeof(s) = 3,和普通情况下创建字符数组一样,不自动加上’\0’。
若:char s[2] = “abc”;
则sizeof(s) = 2,编译器会警告,并截取字符串为指定长度。即只留前两个字符。
总而言之
当不指定字符数组长度时,长度为字符串长度加1,自动在字符串后加上一个’\0’。
当指定字符数组长度时,长度为指定值,若字符串长度不够则用‘\0’补全,若超出指定长度则截断。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页