摘要: 声明时可以使用的修饰符修饰符含义*表示一个指针()表示一个函数[]表示一个数组C允许使用多个修饰符,这就使得可以创建如下各种各样的类型:int board[8][8]; // int数组的数组int **ptr; // 指向int的指针的指针int *risks[10]; // 具有10个元素的数组,每个元素是一个指向int的指针int (* risks)[10]; // 一个指针,指向具有10个元素的int数组int * oof[3][4]; // 一个3*4的数组,每个元素是一个指向int的指针int (* uuf)[3][4]; // 一个指针,指向3*4的int数组int (* uof 阅读全文
posted @ 2013-01-21 12:11 qwertWZ 阅读(308) 评论(0) 推荐(0) 编辑
摘要: C使用术语名字空间(namespace)来识别一个名字的程序部分。作用域是这个概念的一部分:名字相同但具有不同作用域的两个变量不好冲突;而名字相同并在相同作用域中的两个变量就会冲突。名字空间是分类别的。在一个特定的作用域内的结构标记、联合标记以及枚举标记都共享同一个名字空间,而且这个名字空间与普通变量使用的名字空间是不同的。这意味着,可以在同一个作用域内对一个变量和一个标记使用同一个名字,而不会产生错误;但是不能在同一个作用域内使用名字相同的两个标记或名字相同的两个变来能够。例如,在C中下面的语句不会产生冲突:struct rect {double x; double y;};int rect 阅读全文
posted @ 2013-01-21 00:22 qwertWZ 阅读(502) 评论(0) 推荐(0) 编辑
摘要: C99具有一个称为伸缩型数组成员(flexible array member)的新特性。利用这一新特性可以声明最后一个成员是一个具有特殊属性的数组的结构。该数组成员的特殊属性之一是它不立即存在。第二个特殊属性是您可以编写适当的代码使用这个伸缩型数组成员,就像它确实存在并且拥有您需要的任何数目的元素一样。声明一个伸缩型数组成员的规则:伸缩型数组成员必须是最后一个数组成员。结构中必须至少有一个其他成员。伸缩型数组就像普通数组一样被声明,除了它的方括号是空的。下面是一个例子:// flexmemb.c 伸缩型数组成员#include <stdio.h>#include <stdli 阅读全文
posted @ 2013-01-21 00:06 qwertWZ 阅读(1352) 评论(0) 推荐(0) 编辑