c语言的字符串问题

J.Wang_China 2017-01-03 09:17:21
为什么char a[10]="abc"可以
而char a[10];
a[10]="abc";就不可以呢?
...全文
100 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
J.Wang_China 2017-01-04
  • 打赏
  • 举报
回复
恩,谢谢啦~
谁学逆向工程 2017-01-04
  • 打赏
  • 举报
回复
a[10] 只能赋值一个字符,况且你还越界了
paschen 2017-01-04
  • 打赏
  • 举报
回复
引用 11 楼 qq_36380978 的回复:
[quote=引用 10 楼 paschen 的回复:] [quote=引用 9 楼 qq_36380978的回复:][quote=引用 8 楼 paschen 的回复:] [quote=引用 7 楼 qq_36380978 的回复:] 那a=“abc”为什么也不可以呢?
a不是指针,是数组,数组不允许这样赋值,指针就可以 数组要用strcpy[/quote] 可a不是地址么?我的理解是将字符串的第一个字符的地址付给a。。。为什么这样就不对呢?[/quote] a是数组,不是指针,数组名可以退化为指针,但数组不是指针[/quote],糊涂了,,,,,[/quote] 你要指针写成char* a; 总之记住,数组不是指针 数组没有 a= "123" 这种赋值方法
J.Wang_China 2017-01-04
  • 打赏
  • 举报
回复
引用 10 楼 paschen 的回复:
[quote=引用 9 楼 qq_36380978的回复:][quote=引用 8 楼 paschen 的回复:] [quote=引用 7 楼 qq_36380978 的回复:] 那a=“abc”为什么也不可以呢?
a不是指针,是数组,数组不允许这样赋值,指针就可以 数组要用strcpy[/quote] 可a不是地址么?我的理解是将字符串的第一个字符的地址付给a。。。为什么这样就不对呢?[/quote] a是数组,不是指针,数组名可以退化为指针,但数组不是指针[/quote],糊涂了,,,,,
paschen 2017-01-04
  • 打赏
  • 举报
回复
引用 9 楼 qq_36380978的回复:
[quote=引用 8 楼 paschen 的回复:] [quote=引用 7 楼 qq_36380978 的回复:] 那a=“abc”为什么也不可以呢?
a不是指针,是数组,数组不允许这样赋值,指针就可以 数组要用strcpy[/quote] 可a不是地址么?我的理解是将字符串的第一个字符的地址付给a。。。为什么这样就不对呢?[/quote] a是数组,不是指针,数组名可以退化为指针,但数组不是指针
J.Wang_China 2017-01-04
  • 打赏
  • 举报
回复
引用 8 楼 paschen 的回复:
[quote=引用 7 楼 qq_36380978 的回复:] 那a=“abc”为什么也不可以呢?
a不是指针,是数组,数组不允许这样赋值,指针就可以 数组要用strcpy[/quote] 可a不是地址么?我的理解是将字符串的第一个字符的地址付给a。。。为什么这样就不对呢?
paschen 2017-01-04
  • 打赏
  • 举报
回复
引用 7 楼 qq_36380978 的回复:
那a=“abc”为什么也不可以呢?
a不是指针,是数组,数组不允许这样赋值,指针就可以 数组要用strcpy
J.Wang_China 2017-01-04
  • 打赏
  • 举报
回复
那a=“abc”为什么也不可以呢?
小灸舞 版主 2017-01-04
  • 打赏
  • 举报
回复
数组名是数组的首地址,是一个常量,可以给该地址的内存单元(数组第一个元素)赋值,不能改变该常量,常量没有内存空间存你要赋的值。

和指针的区别:指针本身也是一个变量,在内存中有自己的空间,来存放所指向内容的地址。所以指针可以为左值,数组名不可以
paschen 2017-01-04
  • 打赏
  • 举报
回复
a[10] 表示的是字符串中的第11个字符 你只能在声明时这样用
幻夢之葉 2017-01-03
  • 打赏
  • 举报
回复
语法规则而已 见其他楼!!
CPP8886 2017-01-03
  • 打赏
  • 举报
回复
char a[10]="abc"是字符数组初始化同时赋值abc缺省了7个字符,char a[10]; //定义字符数组,a[10]=“abc”是给数组第10个元素赋值,数组下标最大是9,溢出了。
include_xy 2017-01-03
  • 打赏
  • 举报
回复
这样不合法呀
LinJie98 2017-01-03
  • 打赏
  • 举报
回复
这是规定,字符串的初始化和平常一样,但是赋值需要调用strcpy函数

69,371

社区成员

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

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