c++中声明字符串数组以下两种方式有什么不同 1,char name[10]={"123"}; 2,char *name={"123"};

如题所述

第一个定长,10个, 数组呢1 2 3 \0 后面的6个不管有没有赋值,别人10个字符长度摆在那里呢。 第二个指针的话,相当于name里头就存个地址,指向的是字符串“123”首地址,实际name就占用的4个字节(编译器不同,肯能字节不同),用的时候,只能一个个往后挪,挪到3后面的结束符,再往后,小心越界,不晓得后面是个未知的啥。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-17
char name[10]={"123"};自己定义了一个数组,共开设了10个字符型的存储区,可以用来存储字符,经初始化前4个字符分别为'1','2','3','\0'
char *name={"123"};自己定义了一个指针型变量,可以存储地址,经初始化,name存储的是处于程序的常量区的字符串"123"的起始地址,由于常量区的数据是只读的,你无法向name指向的存储区写入或保存字符。本回答被提问者采纳
第2个回答  2014-04-17
1的是10个char元素的数组,2的是4个char元素的数组.前者长度不可变, 后者可改变指针指向,指向另外的字符串.
第3个回答  2014-04-17
第一个声明了数组大小,第二个用指针指向一个数组
第4个回答  2014-04-17
一个是数组表达的,一个用的指针变量表达的
相似回答