int a[10][20];
int b[10];
语法上讲 a[3][4]和b[3][4]都是对一个int类型对象的合法引用,但a是一个真正的二维数组,它分配200个int类型长度的存储空间,并且通过常规的矩阵下标公式20row+col(row表示行,col表示列),计算得到元素a[row][col]的位置.
对b来说该定义只分配10个指针,并且没有初始化.他们的初始化必须以显式的方式进行,比如静态初始化或者通过代码初始化.假定b的每个元素都指向一个具有20个元素的数组,那么编译器就要分配200个int类型长度的存储空间和10个指针的存储空间.指针数组的一个重要优点在于,数组的每一行长度可以不同,
还得强调一下,对b来说,只是声明了10个指针,它所指的内容并不在这里体现,书上说20个元素的数组,这个有点误导的嫌疑,它可以随便指向任何大小.
指针与多维数组
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天的南中国,秋天总算是露出了点尾巴。 飒飒的凉风溜进袖口,顺带捎来隔壁的桔子酒香。 以露台为床,视城市为家, 想...
- 上次讲解了基本的语法和一些Swift的小技巧。这期我们来看几个最基本的数据结构:数组,字符串,集合和字典。 数组 ...