鱼C论坛

 找回密码
 立即注册
查看: 1909|回复: 4

关于用数组定义字符串的一个问题!求助!

[复制链接]
发表于 2014-5-14 17:45:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问下以下两端代码区别在哪里?
一、char str[20]="I love Fishc.com!";

二、char str[20];
       str[20]="I  love Fishc.com!";

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-14 19:15:39 | 显示全部楼层
  str[20]="I  love Fishc.com!";
這是錯的, str[20] 是一個字元, 跟str[1], str[2] ....str[19] 一樣都是一個字元, 你不可以這樣賦值

你也不可以用 str = "I  love Fishc.com!"; 因為 str 是一個address
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-14 19:39:04 | 显示全部楼层
char str[20]="I love Fishc.com!";

这里的=是初始化,因为str之前没有定义过,定义的时候使用=就是初始化
char str[20];
str="I  love Fishc.com!";

这里的=不是初始化,因为str之前定义过,非定义的时候使用=就是赋值

C语言规定可以用字符串常量初始化字符串数组,但不能对字符串数组直接赋值。请注意这句话里,"初始化"是可以的,“赋值”是不行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-14 20:19:32 | 显示全部楼层
数组是常量,所以只能初始化,不能赋值   所以第二个会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-15 17:08:13 | 显示全部楼层
明白了!谢谢!

C语言规定可以用字符串常量初始化字符串数组,但不能对字符串数组直接赋值。请注意这句话里,"初始化"是可以的,“赋值”是不行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 07:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表