摘要:
在上一篇文章中分析了指针与数组的区别,包括编译器内存分配概况:http://www.cnblogs.com/guoyuanwei/archive/2012/06/05/2535413.html这篇文章将主要研究下指针和数组间相同点。在1978年7-8月,The BellSystem Technical Journal,57卷,6号,第1991-2019页中提到:“当一个数组名出现在一个表达式中时,它会被转换为一个指向该数组第一个元素的指针”1、“表达式中的数组名就是指针”如下代码 int a[10], *p, i=2; p=a; p[i]; 上面的代码表示取p[i]的值,可以看到这时指针... 阅读全文
摘要:
大二开始学习C语言,一晃几年过去了,一直在追赶新技术,底层的东西确总感觉没吃透,今日有空,查阅了许多资料后,有感而发,觉得一定要写下来,万一忘记了,以后也可以查阅。再论数组和指针:(1)区分C语言中的声明和定义 声明只是告诉编译器变量的类型和名字,定义才是真真决定内存分配的地方,在一个C程序中,定义只能有一个,而声明却可以有多个。 如文件1中代码:int a[10]; 定义数组,编译器会为数组a分配10个整型的内存 如文件2中代码:extern int a[];声明一个外部的数组,指向文件1中编译器分配了内存的变量a,声明中并不进行内存分配,所以可以不用指定数组大小 如文件3中代码:e... 阅读全文