2011年9月12日

各种指针的定义

摘要: 各种指针的定义:1,一个整形数: int a;2,一个指向整形数的指针: int *a;3,一个指向指针的指针,它指向的指针指向一个整形数:int **a;4,一个有10个整形数的数组: int a[10];5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10];6,一个指向有10个整形数的数组的指针: int (*a)[10];7,一个指向指针的指针,被指向的指针指向一个有10个整形数的数组: int (**a)[10];8,一个指向数组的指针,该数组有10个整形指针: int *(*a)[10];9,一个指向函数的指针,该函数有一个整形参数并返回一个整形数: int ( 阅读全文

posted @ 2011-09-12 21:55 烁烁博文 阅读(571) 评论(0) 推荐(0) 编辑

需要区分的几个有关指针的问题

摘要: 需要区分的几个有关指针的问题:1.const指针与指向const的指针 1)const 指针:指针是const, 比如:int * const x; 表示指针不能修改,不能指向其他对象,但是指针所指向的地址的值可以修改; 2) 指向const的指针:指针指向const对象 比如:const int *x; 或:int const *x;表示指针可以指向其他对象,但指针所指的当前对象的值不可以修改。2.函数指针与函数返回指针 1)函数指针:指向函数的指针 比如:int (*p)(int x, int y);表示p为一个指针,指向函数的首地址; 2)函数返回指针:函数的返回值为指针类型 比如:in 阅读全文

posted @ 2011-09-12 20:38 烁烁博文 阅读(210) 评论(0) 推荐(0) 编辑

sizeof面试题选----Linux C编程实战 【转载】

摘要: sizeof面试题选----Linux C编程实战结构体和共用体的内存分配是C语言的一个难点,也是面试题中的热点。示例1:Union data1{double d;int i;char c1;char c2[9]; }; sizeof(union data1)的值为16.在编译器默认设置的情况下,该共用体最大基本类型为double,它占8字节,所以此共用体以8来对齐。字符数组c2占9个字节,那么整个共用体应该占9个字节,但按照对齐原则,实际分配给它的内存为16字节。 如果是: struct data1 { double d; int i; char c1; char c2[9]; };size 阅读全文

posted @ 2011-09-12 16:01 烁烁博文 阅读(675) 评论(0) 推荐(0) 编辑

c++内存中字节对齐问题详解 【转载】

摘要: c++内存中字节对齐问题详解一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其 阅读全文

posted @ 2011-09-12 14:45 烁烁博文 阅读(186) 评论(0) 推荐(0) 编辑

导航