昆明学网站建设,怎么做网站跟域名,火星培训机构收费明细,网站 网址 域名1. const 关键字 a) const int a; b) int const a; c) const int *a; d) int * const a; e) int const * const a; 解析#xff1a; a) a为一个int型变量#xff0c;在它被定义时就应当对其初始化#xff0c;因为以后就没有机会再去改变它了。 b) 与 a) 是一个意思 b) int const a; c) const int *a; d) int * const a; e) int const * const a; 解析 a) a为一个int型变量在它被定义时就应当对其初始化因为以后就没有机会再去改变它了。 b) 与 a) 是一个意思const 与 int 的位置可以互换。 c) const 与 int 修饰的都是 (*a) 这里的a是一个指向 int 型变量的指针指针 a 的值可以被修改(*a) 即 a 指向的变量不能被修改。 d) const 修饰 a 而int 修饰 (*a) 这里的a是一个指向 int 型变量的指针指针 a 的值不能被修改(*a) 即 a 指向的变量可以被修改。 e) 指针 a 的值与 (*a)即a指向的变量均不能被修改。 总结 1) 如果 const 与 int 是挨在一起的中间没有*则两者的位置是可以互换的。 2) 如果 const 或是 int 之后是*则 const 或是 int 修饰的是(*a)即修饰的是指针 a 指向的变量。 2. (*((void (*)( ))0x80004000)) ( ) 解析 先看 (void (*)( ))0x80004000 。 其中的 void (*)( ) 是函数指针类型该函数的形参为空返回值类型为 void 。 于是(void (*)( ))0x80004000 就是表示将 0x80004000 强制转换为 void (*)( ) 类型的函数指针即0x80004000是某函数的入口地址。 然后请回忆一下 (*p)() 是什么意思没错这是用函数指针调用函数的形式。 那么(*((void (*)( ))0x80004000)) ( ) 就是表示调用某一个函数 该函数的入口地址为0x80004000该函数的形参为空无返回值。 3. void * ( * (*fp1)(int))[10]; float (*(* fp2)(int,int,int))(int); int (* ( * fp3)())[10](); 分别表示什么意思 解析 1. void * ( * (*fp1)(int))[10]; fp1是一个指针指向一个函数这个函数的参数为int型函数的返回值是一个指针这个指针指向一个数组这个数组有10个元素每个元素是一个void*型指针。 2. float (*(* fp2)(int,int,int))(int); fp2是一个指针指向一个函数这个函数的参数为3个int型函数的返回值是一个指针这个指针指向一个函数这个函数的参数为int型函数的返回值是float型。 3. int (* ( * fp3)())[10](); fp3是一个指针指向一个函数这个函数的参数为空函数的返回值是一个指针这个指针指向一个数组这个数组有10个元素每个元素是一个指针指向一个函数这个函数的参数为空函数的返回值是int型。 4. 有关指针的数据类型的小结 定义含义int i;定义整型变量iint *p;p为指向整型数据的指针变量int a[n];定义整型数组a它有n个元素int *p[n];定义指针数组p它由n个指向整型数据的指针元素组成int (*p)[n];p为指向含n个元素的一维数组的指针变量每一个元素均为整型数据int (*p)[n](); p为指向含n个元素的一维数组的指针变量每一个元素均为一个函数指针该函数无形参返回int型数据 int f();f为带回整型数值的函数int *p();p为带回一个指针的函数该函数指向整型数据int (*p)();p为指向函数的指针该函数返回一个整型数据int **p;p为一个指针变量它指向一个指向整型数据的指针变量参考文档《彻底搞定C指针》转载于:https://www.cnblogs.com/outs/p/5103868.html