摘要: 零、数组与数组名C语言中的数组的一般声明形式如下:T arr_name[n]; /* T为类型,n为数组元素个数 */从内存布局角度来说,数组T arr_name[n]就是内存中连续的内存单元,每个内存单元的长度为sizeof(T),数组的起始内存单元地址为arr_name所在的内存地址, 同时也是数组第一个元素arr_name[0]的内存地址。C语言数组的数组名(arr_name)有这样的特点:arr_name = &arr_name = *arr_name = 数组起始地址。见下面例子:char a[5];printf("a = %p\n", a);printf 阅读全文
posted @ 2014-03-17 22:44 Lcnoctave 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 指针是C语言中公认的最为强大的语法要素,但同时也是最难理解的语法要素,它曾给程序员带来了无数麻烦和痛苦,以致于在C语言之后诞生的很多新兴 语言中我们再也难觅指针的身影了。下面是一个最简单的C语言指针的例子:int a = 5;int *p = &a;其中p就是一个指针变量。如果C语言中仅仅存在这类指针,那显然指针不会形成“大患”。经常地我们会在代码中看到下面的情形:int **q = &p;int ***z = &q;随着符号'*'个数的增加,C代码的理解复杂度似乎也曾指数级别增长似的。像q、z这样的指向指针的指针(pointer to pointer 阅读全文
posted @ 2014-03-17 22:29 Lcnoctave 阅读(415) 评论(0) 推荐(0) 编辑