找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 228|回复: 5

关于数组及字符数组

[复制链接]
发表于 2009-11-5 00:43:56 | 显示全部楼层 |阅读模式 IP:江苏扬州
char ch[] = "abc";与char ch[] = {'a','b','c','\0'};的区别?
char *ch = "abc";与char ch[] = "abc";的区别?
int ia[] = {1,2,3};cout<<ia;输出的是ia的地址,而char ch[] = {'a','b','c','\0'};cout<<ch;却是"abc",why?
如果char ch[] = "abc";与char ch[] = {'a','b','c','\0'};没有'\0'的话,cout<<ch;输出的结果却不可想像,why?
请大家指教
发表于 2009-11-5 00:43:56 | 显示全部楼层 IP:江苏扬州
只有char 类型的数组 输出它的数组名就可以输出整个数组
cout在输出char类型数组时 是要判断'\0' 如果去掉的话 那它会一直判断 等到 有'\0'的时候
回复

使用道具 举报

发表于 2009-11-5 00:43:58 | 显示全部楼层 IP:江苏扬州
char ch[] = "abc";是以字符串赋值的,char ch[] = {'a','b','c','\0'};是以字符赋值的,两者是相同的在给字符数组赋值时。
回复

使用道具 举报

发表于 2009-11-5 00:44:00 | 显示全部楼层 IP:江苏扬州
char ch[] = "abc";是以字符串赋值的,char ch[] = {'a','b','c','\0'};是以字符赋值的,两者是相同的在给字符数组赋值时。
回复

使用道具 举报

发表于 2009-11-5 00:44:01 | 显示全部楼层 IP:江苏扬州
个人人为你需要明白以下3个概念:
1,要表示一个字符串需要直到它首字符的地址和末字符的地址,而C风格字符串采用的方法是通过字符数组来实现,用数组名或数组第一个元素的地址表示首字符的地址,而用'\0'字符表示末字符的地址,所以只要定义式能体现出这两点,C风格字符串就定义成功了。
2,"abc"就是C风格字符串的一个实例,它会自动在abc后加一个空字符,即代表末字符的地址,而"abc"整个表达式返回的是‘a’的地址,即首字符的地址。
3,<< 操作符在类中定义了操作符重载,即对不同的操作数采取不同的操作。所以当左操作数为一个ostream对象,右操作数为一个字符指针时它将采取以下操作:通过字符指针找到字符串的首字符,输出到ostream中,然后依次输出首字符后的字符,直到遇到'\0'字符位置,这样一个字符串就输出完毕。
回复

使用道具 举报

发表于 2009-11-5 00:44:02 | 显示全部楼层 IP:江苏扬州
char *ch = "abc";与char ch[] = "abc";还有一个区别:因为"abc"是个字符串常量,所以把他赋给指针后不能通过指针来修改他即不能有ch[0]='b'这样的语句出现,但数组可以修改。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 09:44 , Processed in 0.214024 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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