问一个菜鸟问题??

laye999 2003-09-29 03:45:10
char str[14];
str="i love you"
为什么不能这样赋值,而
char *str;
str="i love you"可以这么做???
...全文
35 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ora4314601 2003-10-05
  • 打赏
  • 举报
回复
char str[14] ;定义是str为const char*,故不能进行赋值。而char *str 是一个可赋值的量。顺便说一下,系统先做char *temp = "i love you",再做str=temp;
polly_110 2003-10-05
  • 打赏
  • 举报
回复
不好意思,应该是:char str[14]="i love you";
单独的str只是一个首地址,这个地址只能放下一个char,而char str[14],则是一个数组,可以放14个char.
polly_110 2003-10-05
  • 打赏
  • 举报
回复
char str[14];
str="i love you"
应该是你掉了分号吧:
str="i love you";
junmayang 2003-10-03
  • 打赏
  • 举报
回复
语法问题
wwwwlanshu 2003-09-29
  • 打赏
  • 举报
回复
好像不可以,*str是一个指针,这里的str是一个地址,*str=“i love you"可以了,它指向"i love you"的头一个地址也就是"i"的地址。
str[14]是一个字符数组。这里str不是地址它也就没有空间,你要是把它定义成char *str[14];这样应该可以了。
hubs 2003-09-29
  • 打赏
  • 举报
回复
前面的str是一个地址,但不是一个指针,因为指针本身要占有空间,str只是数组名,没有实际意义,只是编译系统把它作为一个地址来看
z820401 2003-09-29
  • 打赏
  • 举报
回复
可以
verbal 2003-09-29
  • 打赏
  • 举报
回复
这样的赋值是可以的。
Christianlzw 2003-09-29
  • 打赏
  • 举报
回复
将str定义为指针变量,必须先赋初值
玄豹 2003-09-29
  • 打赏
  • 举报
回复
我认为:
str是指第一个地址值,所以不能赋值呀!
你可以这样赋值:
char str[14]="i love you";
zhusunme 2003-09-29
  • 打赏
  • 举报
回复
完全可以
调式正确
simclock 2003-09-29
  • 打赏
  • 举报
回复
对,用字符数组定义的字符串不可以直接用=赋值

69,336

社区成员

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

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