char x[] = {"abcd"} 和 char y[] = {'a','b','c','d'} 一样吗?

xueshi 2007-11-08 03:11:18
char x[] = {"abcd"} 和 char y[] = {'a','b','c','d'} 一样吗?
...全文
1006 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pandengesen 2007-11-09
  • 打赏
  • 举报
回复
3楼完全正确,看样子3楼的基本功很扎实。
ForestDB 2007-11-09
  • 打赏
  • 举报
回复
顺便一提,发现个有趣的问题。

char x[] = { "abcd" };

这个也可以的。
ForestDB 2007-11-09
  • 打赏
  • 举报
回复

#include <stdio.h>

void main(void)
{
char x[] = "abcd";
char y[] = { 'a', 'b', 'c', 'd'};
int i;

printf("size of x is %d\n", sizeof(x));
for(i = 0; i < sizeof(x); i++) {
printf("x[%d] = %.2X\n", i, x[i]);
}

printf("size of y is %d\n", sizeof(y));
for(i = 0; i < sizeof(y); i++) {
printf("y[%d] = %.2X\n", i, y[i]);
}
}

zhao1027 2007-11-09
  • 打赏
  • 举报
回复
c++ primer里对这个有说明,3楼正解
wjdlt_1997 2007-11-09
  • 打赏
  • 举报
回复
抱歉抱歉,原来CSDN论坛不加C/C++源代码标志,引号内会自动加空格- -!
""
''

""
''
wjdlt_1997 2007-11-09
  • 打赏
  • 举报
回复
试一下帖……
""
''
wjdlt_1997 2007-11-09
  • 打赏
  • 举报
回复
char   x[]   =   { "abcd "}     和   char   y[]   =   { 'a ', 'b ', 'c ', 'd '}

有两点不一样:
x[] = {"abcd "}

//引号""内的是[字符串],字符串包含结束符'\0';格式是对的,[字符串]引号内可以带空格
char y[] = {'a ', 'b ', 'c ', 'd '}

//引号''内的是[字符],不包含结束符'\0';格式是错的,[字符]引号内不能带空格

C语言很多地方都可以随便乱加空格,但引号内就要注意了。
TNT_1988 2007-11-08
  • 打赏
  • 举报
回复
楼上正解
第一种比第二种多一个结束符
xugang_2001 2007-11-08
  • 打赏
  • 举报
回复
楼上正解
ckt 2007-11-08
  • 打赏
  • 举报
回复
char x[] = { "abcd "}
这种写法,把字符串abcd包括结束符\0存到x

char x[] = { 'a ', 'b ', 'c ', 'd '}
这种是存储四个字符a,b,c,d到数组
xueshi 2007-11-08
  • 打赏
  • 举报
回复
sorry 是打错了
char x[] = "abcd ";
ouyh12345 2007-11-08
  • 打赏
  • 举报
回复
char x[] = "abcd ";

33,322

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧