朗朗空间

我知道并不是 所有鸟儿都飞翔

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新随笔

最新评论

阅读排行榜

评论排行榜

1.字符数组
定义一个字符数组时,您必须让编译器知道它需要多大空间。
如:

const char msg[40] = "show me the money!";

const表明这个字符串不可以在程序中改变。
这种初始化和下面所示的标准数组初始化相比是很简短的:

const char msg[] = {'s', 'h', 'o', 'w', ' ',
            '
m', 'e', ' ', 't', 'h',
            '
e', 'm', 'o', 'n', 'e',
            '
y', '\0'
          
};

注意标志结束的空字符。如果没有它,得到的就只是一个字符数组而不是一个字符串。
另外,指定数组大小时,一定要确保数组元素个数比字符串的长度至少多1(多出来的1个元素用来存放空字符)。
未被使用的元素均被自动初始化为\0。这里因为是字符数组,所以初始化为char形式的空字符,而不是数字字符0。

如果在进行初始化声明时省略了数组大小,则该大小由编译器来决定。
但是请注意,如果并非在初始化时就进行声明,则必须为数组明确的分配大小。

#define LINELEN 81 //最大字符串长度 + 1
……
char name[LINELEN];

声明一个数组时,数组的大小必须为整型常量,而不是在运行时得到的变量值。
和任何数组名一样,字符数组名也是数组首元素的地址。应此下面的式子对数组msg成立。

msg == &msg[0]
*
msg == 's'
*
(msg + 1) == msg[1] == 'h'
posted on 2008-05-04 16:10 聂元朗 阅读(1847) 评论(0)  编辑 收藏 引用 所属分类: C语言学习笔记

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理