字符串(C语言)
1.如果要声明一个字符串“NoMasp”,下面这行代码错在哪里? char name[] = { 'N' , 'o' , 'M' , 'a' , 's' , 'p' }; 如果想声明的是字符串,就需要在初始化时在结尾加上一个’\0’。或者可以直接用下面这张方式: char name[] = "NoMasp" ; 2.以下这段代码会打印出什么? #include <stdio.h> int main() { char nomasp[]= "I like C language." ; char *ptr; ptr=nomasp; ++ptr; nomasp[ 6 ]= '\0' ; puts (++ptr); return 0 ; } 在ptr执行自增操作之后就是指向字母’I’后的空格,而后在索引为6的地方改为’\0’因此字符串在这里就被截断了。所以最后打印出来的是”like”。 3.’A’一定比”A”更加节省空间吗? 不一定。字符常量是存储在int中的,也就是说’A’会占用2个或4个字节,虽然它’A’实际上只使用了一个字节来存储它的编码。而”A”则使用了2个字节,一个字节用来保存’A’,另一个字节用来保存’\0’。 char c = 'A' ; c作为字符变量则占用1个字节。 为使本文得到斧正和提问,转载请注明出处: http://blog.csdn.net/nomasp 版权声明