clwn.net
当前位置:首页 >> **p 什么意思 C++ >>

**p 什么意思 C++

*p是指针变量p所指向的对象,age是指针变量p所指向的对象的成员数据.另一般都是带括号地指向它,比如下面那样:(*p).age

*p 说明p是一个指针,指向一个存储空间*p的值就是它指向的存储空间的存储的值如int *p,a;//定义p是一个指向整型变量的指针变量..p=&a;//p的值为a的地址,即p指向aa=5;//a的值为5,a与*p是等价的,那么a=5,即是*p=5printf("%d",*p);//输出结果为5同理char *p;//定义p为一个指向字符型变量的指针变量char c;p=&c;//p的值为变量c的地址,即p指向c..*p='a';//与c='a'等价printf("%c",c);输出结果为a一句话:*p的值就是它所指向的元素的值(p的值为它所指向的元素的地址,和*p是不一样的)

由于++是后置的,所以*pc++表示先将指针pc所指向的地址中的数据取出,之后指针pc指向下一个地址单元.可以通过如下实例来进行理解:char *pc="abcd";char ch1, ch2;ch1 = *pc++; // 执行完该语句后,ch1='a'(因为pc刚开始执行字符串首地址,即第一个字符所在的地址单元),并且pc执行下一个字符(即字符'b')所在的地址单元ch2 = *pc; // 执行完后ch2='b'(因为执行完ch1 = *pc++后,pc指向了下一个字符所在的地址单元,所以此时*pc='b')

char ***p代表三重指针,我们举个简单的例子,char c_val = 'e';char *p1, **p2, ***p;因为上面都是变量,于是编译器都给它们分配了不同的内存空间,假设c_val的地址是0x12345678,p1的地址是0x1234567c,p2的地址是0x12345680,p的地址是0x

昨天刚回答了一个,你这问题不全吧,前面应该还有一个类型举个例子:char (*p)[4];这是定义了一个数组指针,p指向含有4个char元素的数组区别一下:char *p[4] 是指针数组,数组有4个元素,每个元素都是指针char (*p)[4]是数组指针,p指向含有4个元素的数组

if(p) 一个是判断p的指针值是否为0 if(*p) 一个是判断p指向的内存地址中的值是否为0

p 是指针,指向的内容也是一个指针,这个指针是整数指针.p --> p1(*p) --> 整数

我粘的别人的,你问的应该是双星号建立数组吧,这和普通数组一样的嘛:int *p =new int[5] 创建5个int型的变量 可是当你创建对象数组的时候,对象是用指针表示的,你需要创建对象指针的数组 Object *p = new Object(); 你这样只能创建一

你的疑问恐怕是出在二维数组里吧例如:int a[3][5],*p; p=a; 上面的第一行表示定义一个指针变量p,下面一行表示p指向数组a的首行a+1表示下一行首地址*p等价于*(p+0)等价于p[0] 表示p[0]行首地址p[0]+1表示p[0][1]的地址 p[0]+2表示p[0][2]的地址而*(p[0]+2)表示p[0][2]这个元素的值

因为运算符“.”比运算符“*”的优先级高.所以,(*p).name是 取 指针p 指向的值 中的name成员而*p.name,是取 变量p中的name指针的值(*p).name 中,p是指针,name是成员变量*p.name中p是一个普通变量,name是一个成员指针学的也快忘了,如有错误,谢谢纠正

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com