摘要: 指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如: int*从指定地址向后寻找4字节作为变量的存储单元 double*从指定地址向后寻找8字节作为变量的存储单元 1.void指针是一种特别的指针 void *vp //说它特别是因为它没有类型 //或者说这个类型不能判断出指向对象的长度 2.任何指针都可以赋值给void指针 type *p; vp=p; //不需转换 //只获得变量/对象地址而不获得大小 3.void指针赋值给其他类型的指针时都要进行转换 type *p=(t 阅读全文
posted @ 2011-06-23 10:13 属于我的博客园 阅读(72) 评论(0) 推荐(0)
摘要: C语言void及void指针深层探索去论坛讨论 来源:sep.cublog.cn 作者: 发布时间:2007-12-15 1.概述 本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错 阅读全文
posted @ 2011-06-23 10:07 属于我的博客园 阅读(68) 评论(0) 推荐(1)
摘要: 一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变 阅读全文
posted @ 2011-06-14 15:27 属于我的博客园 阅读(59) 评论(0) 推荐(0)