摘要: 1、当指针指向数组元素时,C语言允许对指针进行数值运算,支持并且只支持以下三种运算(1)指针加上一个整数(2)指针减去一个整数(3)两个指针相减2、两个指针的比较p1=&a[1];p2=&a[2];则p2>p13、若数组有N个元素,则虽然a[N]不存在,但经常使用for(int *p=&a[0]; ... 阅读全文
posted @ 2013-02-11 20:14 lujinhong 阅读(127) 评论(0) 推荐(0) 编辑
摘要: (1)在C语言的被调用函数中,没有办法求出数组实参的大小,因此需要显示传递array_length参数。详见博客:C语言内存分配时间。(2)以O(N)的计算时间得出结果。#include void find_2_largest(int array[], int array_length, int *... 阅读全文
posted @ 2013-02-11 19:52 lujinhong 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 只有以下三种情况:(1)数组是形式参数(2)数组声明的同时进行了初始化(3)数组的存储类型为extern参考自:《C语言程序设计:现代方法》P334 阅读全文
posted @ 2013-02-11 11:03 lujinhong 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 1、变量在声明时即分配内存,此时将根据变量的内存分配内存大小,如int类型4字节,float类型4字节,double类型8字节。如下例中的a.2、但对于数组,有以下几种情况(以int类型为例):(1)声明数组时即指定数组大小N,则此时可按N*sizeof(int)的大小分配内存。如下例中的c。(2)... 阅读全文
posted @ 2013-02-11 10:51 lujinhong 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运... 阅读全文
posted @ 2013-02-11 10:18 lujinhong 阅读(1635) 评论(0) 推荐(0) 编辑