【C语言】"abc" 和 { 'a', 'b', 'c' } 有什么区别?

关于0318 2020-02-28 02:45:32
比如下面的例子:

char *a[] = {
"abc",
"bcd"
}

char *b[] = {
{ 'a', 'b', 'c' },
{ 'b', 'c', 'd' }
}

...全文
1495 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2020-02-28
  • 打赏
  • 举报
回复
引用 9 楼 关于0318 的回复:
[quote=引用 1 楼 真相重于对错 的回复:]
引用 3 楼 lin5161678 的回复:
引用 8 楼 自信男孩 的回复:
可不可以这样理解: "abc" 返回一个地址,指向 'a',并且后续有 'b', 'c', '\0' { 'a', 'b', 'c' } 返回一个一个值,这个值就是 'a', 'b', 'c'[/quote]不可以
关于0318 2020-02-28
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:

引用 3 楼 lin5161678 的回复:

引用 8 楼 自信男孩 的回复:

可不可以这样理解:
"abc" 返回一个地址,指向 'a',并且后续有 'b', 'c', '\0'
{ 'a', 'b', 'c' } 返回一个一个值,这个值就是 'a', 'b', 'c'
自信男孩 2020-02-28
  • 打赏
  • 举报
回复
第一个是字符串,第二个是字符数组。当然第一个也是字符数组,只不过第一个字符数组比第二个每个数组都多一个'\0'
lin5161678 2020-02-28
  • 打赏
  • 举报
回复
引用 4 楼 关于0318 的回复:
[quote=引用 3 楼 lin5161678 的回复:] "abc" 作为 char数组初始化项的时候 是{ 'a', 'b', 'c', 0 }的简写 其他地方 "abc"是一个char[4] 数组
这两行是不是有笔误,大佬,我看着有点不太明白[/quote] char str[] = "123"; 和 char str[] = {'1', '2', '3', 0}; 意思完全一样 这里的 "123" 是 {'1', '2', '3', 0} 的简写 除了初始化char数组这种情况之外的 "123"是一个char[4]数组 和 {'1', '2', '3', 0} 完全没关系
真相重于对错 2020-02-28
  • 打赏
  • 举报
回复
然后,你再看一下啊 char str[]="abc"; size_t s = sizeof(str);是多少?
真相重于对错 2020-02-28
  • 打赏
  • 举报
回复
引用 2 楼 关于0318 的回复:
[quote=引用 1 楼 真相重于对错 的回复:] 第二个每一个最后一个字符不是\0
可是我试了一下 [/quote] char a[]={'a','b','c'}; size_t s =sizeof(a); 看看 s是多少,而不是看s[3]是不是等于‘\0';
关于0318 2020-02-28
  • 打赏
  • 举报
回复
引用 3 楼 lin5161678 的回复:
"abc" 作为 char数组初始化项的时候 是{ 'a', 'b', 'c', 0 }的简写
其他地方 "abc"是一个char[4] 数组

这两行是不是有笔误,大佬,我看着有点不太明白
lin5161678 2020-02-28
  • 打赏
  • 举报
回复
"abc" 作为 char数组初始化项的时候 是{ 'a', 'b', 'c', 0 }的简写 其他地方 "abc"是一个char[4] 数组 这里 "abc"是作为 char*的初始化 注意 这里不是 char[] 初始化 这里的"abc"是一个数组 而不是 简写 和 { 'a', 'b', 'c', 0 } 完全没联系 char *b[] = { { 'a', 'b', 'c' }, { 'b', 'c', 'd' } } b[0]是一个char* 初始化必须是一个char* 或者可以转换为char*的表达式 { 'a', 'b', 'c' } 不符合这两个条件 这里是语法错误
关于0318 2020-02-28
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
第二个每一个最后一个字符不是\0


可是我试了一下
真相重于对错 2020-02-28
  • 打赏
  • 举报
回复
第二个每一个最后一个字符不是\0

70,010

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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