摘要: char pets1[12] = "nice cat.";char *pets2 = "nice cat.";字符串的数组形式(pets1[12])在计算机内存中被分配一个有若干个元素的数组。每个元素都被初始化为相应的字符。通常,被引用的字符串存储在可执行文件的数据段部分;当程序被加载到内存中时,字符串也被加载到内存中。被引用的字符串被成为位于静态存储区。但是在程序开始运行之后才为数组分配存储空间。这时候,会把被引用的字符串复制到数组中。此后,编译器会把数组名pets1看作是数组首元素的地址&pets1[0]的同义词。这里最重要的一点是,在数组形 阅读全文
posted @ 2013-01-16 23:45 qwertWZ 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 1. 假如需要向带有一个int参量的函数传递一个值,您可以传递一个int变量,也可以传递一个int常量,比如5。在C99标准之前,数组参数的情况是不相同的:可以传递数组,但没有所谓的数组常量可供传递。C99新增了复合文字(compound literal)。文字是非符号常量,例如5是int类型的文字,81.3是double类型的文字,'Y'是char类型的文字。开发C99标准的委员会认为,如果有能够表示数组和结构内容的复合文字,那么在编写程序时将更为方便。对于数组来说,复合文字看起来像是在数组的初始化列表前面加上用圆括号括起来的类型名。例如,下面是普通数组的声明方法:int d 阅读全文
posted @ 2013-01-16 22:41 qwertWZ 阅读(1684) 评论(0) 推荐(0) 编辑
摘要: C99增加了一种新特性:指定初始化项目(designated initializer)。此特性允许选择对某些元素进行初始化。数组的指定初始化项目例如:要对数组的最后一个元素初始化。按照传统的C初始化语法,需要对每一个元素都初始化之后,才可以对最后的元素进行初始化:int arr[6] = {0, 0, 0, 0, 0, 212} // 传统语法而C99规定,在初始化列表中使用带有方括号的元素下标可以指定某个特定的元素:int arr[6] = {[5] = 212}; // 把arr[5]初始化为212对于通常的初始化,在初始化一个或多个元素后,未经初始化的元素都将被设置为0。附加的指定初始化 阅读全文
posted @ 2013-01-16 22:24 qwertWZ 阅读(732) 评论(0) 推荐(0) 编辑
摘要: C99识别两种类型的浮点数:实数浮点数类型和复浮点数类(<complex.h>)。两种类型共同组成了浮点类型。复浮点数具有两个部分:一个实部和一个虚部。C99内部使用一个二维数组来表示复数,第一个部分为实部,第二个部分作为虚部。有3中复浮点类型:float _Complex代表实部和虚部都是float值double _Complex代表实部和虚部都是double值long _Complex代表实部和虚部都是long double值虚数只有虚部。这3中类型是:float _Imaginary代表虚部是float值double _Imaginary代表虚部是double值long _I 阅读全文
posted @ 2013-01-16 22:20 qwertWZ 阅读(364) 评论(0) 推荐(0) 编辑