1> char arrc[][5] = { {'0','0','0','0','\0'},{'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'} };
2> char* ptrc[5] = { {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'}, {'0','0','0','0','\0'} };
3> char arrs[][5] = { "0000","0000","0000","0000","0000" };
4> char* ptrs[5] = { "0000","0000","0000","0000","0000" };
1.请问这四种方式有什么不同?
2.请问字符串就是字符数组+空字符这种说法正确吗?书上都是这么说,但如果正确的话,为什么第2个赋值是错误的?
3.如果把1和2的值改成下面这样呢?也就是在'\0'后面再加一个'0',会被截断吗?但是访问的话,可以访问到这个'0'啊!
{ {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'}, {'0','0','0','0','\0','0'} };
感谢!
|