肝脏有结节是癌症吗:c语言数族问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 05:47:46
为什么char a[]={‘A’‘B’‘C’}占3个字节,而b[]=”ABC“占4个字节?解释详细点,我是菜鸟

因为前面的一个已经被初始化了,
可是后面的一个是一个字符串,要以\0来结束,所以处理器自动在后面加了一个\0.所以就多一个字节啊
给我加分吧!!!!

你应该注意''和""的区别:
1. ''定义的是字符,字符的大小都是1,例如:
'A'、'\0'、'\n'
表达式:char a[]={‘A’‘B’‘C’}中定义了一个char型的数组a,同时将它初化为三个字符大小;

2. ""定义的是字符串(即是连续存放的多个字符),为了指示字符串的结尾,编译器会自动在每个字符串结尾处加上'\0'这个字符,表示这个串结束了,这也是'\0'字符的一般用途。
一个有趣的案例是:char string1 = "abc\0";
按理说这个字符串已经有结束符了,但是编译器是不管这么多的,它仍然会在string的最后加多一个'\0'字符
更为特别一点的如 char string2 = "abc\0de";
当你使用printf("%s",string2);来打印它时,显示的只是abc,但不要以为它的大小就是4了,因为printf的%s方式在字符串中找到'\0'一般就认为这个串结束了,所以它没打印出后面的de两个字符。

""定义的是字符串(即是连续存放的多个字符),为了指示字符串的结尾,编译器会自动在每个字符串结尾处加上'\0'这个字符,表示这个串结束了,这也是'\0'字符的一般用途。
就是这个道理............

b[]=”ABC“后边还有“/0”,所以4个
char a[]={‘A’‘B’‘C’}只有3个