读书人

数组和指针赋初值有关问题

发布时间: 2012-09-09 09:27:54 作者: rapoo

数组和指针赋初值问题
char *s; s = "Olympic";
char s[7]; s = "Olympic";
char *s; s = {"Olympic"};
char s[7]; s = {"Olympic"};

能解释下为啥第一个是对的,后面三个都是错的吗?

[解决办法]

C/C++ code
char *s; s = "Olympic";      // "Olympic"的数据类型是char const [8],可以隐式转换为const char*,继而赋给char*char s[7]; s = "Olympic";    // 已经发生了内存分配,及s的地址已经确定了,而且在栈上,不能更改。可以用strcpy(s, "Olympic");这种方// 式满足你的要求char *s; s = {"Olympic"};// s是一个指针,{"Olympic"}是什么呢?两边的数据类型不一致,且不能相互隐式转换。char s[7]; s = {"Olympic"};// 和上面道理类似 

读书人网 >C语言

热点推荐