首页 > 代码库 > 指针,指针,指针。。。
指针,指针,指针。。。
1、指针常量与常量指针
int a = 10;
int * const p1 = &a;
const int * p2 = &a;
p1是不可改变地址的常量,即指针常量,但能够对它所指向的内容进行改动。
p2是指向常量的指针,即常量指针,它所指向的地址内容是不可改动的,但其本身确实能够改动的。
2、指针运算
#include<stdio.h> int main() { int *ip1,*ip2,ivalue; char *cp1,*cp2,cvalue; ip1 = (int*)0x500; ip2 = (int*)0x518; ivalue = http://www.mamicode.com/ip2 - ip1;>执行结果:ivalue=http://www.mamicode.com/6 cvalue=24指针进行运算时,它的值与其类型有关。两个地址相同相差24个字节,以整形指针相减结果为 24/4=6;以字符指针相减结果为 24/1=24;
3、指针与数组
#include<stdio.h> int main() { int a[2][3][4] = { {{101,102,103,104},{111,112,113,114},{121,122,123,124}}, {{201,202,203,204},{211,212,213,214},{221,222,223,224}} }; printf("%d\t%d\n",**(a[0]+2),sizeof(a)); return 0; }输出结果:121 96分析:对于一位数组a,*a等价于a[0],*(a+2)等价于a[2]。同理对于多维数组*a[0]等价于a[0][0],*(a[0]+2)等价于a[0][2],**(a[0]+2)等价于*a[0][2]等价于a[0][2][0]。
sizeof(a)计算数组a所占内存空间:(2*3*4)*4Byte=96Byte。4、指针数组 与 数组指针
int *p[N],p代表一个可存放N个整型指针类型元素的一维数组,p是指针数组,本质是数组,是常量。
int (*p)[N],p代表一个指向由N个整型数据组成的一维数组的指针,p是数组指针,本质是指针,是变量。
5、指针函数 与 函数指针
int * f(int x),f代表一个返回值为整型指针的函数,f是指针函数,本质是函数。
int (*f)(int x),f代表一个指向函数的指针,该函数的參数和返回值均为整型,f是函数指针,本质是指针。
指针,指针,指针。。。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。