首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-09-09 
数组和指针赋初值问题char *s s Olympicchar s[7] s Olympicchar *s s {Olympic}char s

数组和指针赋初值问题
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"};// 和上面道理类似 

热点排行