c语言指针p-q
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/04 15:54:38
k是双重指针k=&p所以*k就和p是一样的,因为k保存了p的地址,k指向p所以**k就是*p
"*"运算符称为指针运算符,在定义指针的时候表示指向,在使用指针运算的时候表示取该指针对应的值(而不是地址,是地址对应的值)所以*(p+i)表示的就是地址(p+i)所对应的值.
A[x]=“1,2,3,4,5,6”p->2q->5他们之间有“3”,”4“两个元素,数量为2.
p是一个地址*p是这个地址中的数据
*表示声明了一个指针变量,&表示取出变量的内存地址.*p=&q的意思就是把q的内存地址取出来,赋值给指针p.再问:可以理解成:把q的内存里的值取出来,赋值给指针p吗?再答:不能,是q的内存地址,不是内
若果我还没记错的话:你的问题:你这里问的是指针p[i]:数组p的[i]这个地方放的值*p[i]:数组p的[i]这个地方放的值(这当做一个地址)的值,即p[i]这个地方放了一个地址(相当于另外一个p[i
首先,*和++的优先级相同,是右结合运算符.所以*++p等价于*(++p)*p++等价于*(p++)因此*++p就是试p的值先加一,然后取其所指向的内容.*p++就是先取p指向的内容,然后p的值加一这
*P=*Q内部的值进行复制*P=&Q这样应该出现在申明的时候.表明申明一个指针类型..他的地址指向Q的(或则这个指针类型内部存放的数值是地址)*P=Q如果Q是一个代表一个数值int类型..而这个不是申
*p就是指针指向目标的值-'0'就是减去48,如果是p指向的是数字字符(一位)就转换为对应的数字的ascii码+'0'就是加上48,当然就是将p指向的数字(一位)转换为对应的ascii码
两个指针是不能相加的.仍以街道地址的比喻为例,假设你住在湖滨大道1332号,你的邻居住在湖滨大道1364号,那么1332+1364指的是什么呢?其结果是一个毫无意义的数字.如果你的C程序试图将两个指针
看错了int x[4]={1,2,3,4};int *p;p=x;printf("%p\n",++p); &
p--next=p表示指向自己
指针变量前加*号是解引用运算,通俗的将就是取得该指针所指向内存单元的值.其既可以是左值,也可以是右值.p的值就是i的地址,*p就是这个地址的值,也就是i的值,同理*q是j的值.所以执行*p=*q后就是
它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区.让我们分别说明.先声明
scanf要修改pa和pb函数传递参数的时候只能传递数值所以你传递papb2个数值过去毫无意义,不能修改变量本身传递地址的数值过去就有意义了可以根据地址修改变量本身这个地址就是指针
p+1与p++的区别就是,p++修改了p本身的值相当于p=p+1;
*(p++)的结果是得到当前*p的值,然后p=p+1指向下一位这与*p++是等效的
应该是*(P+i*4+j);求第i行第j列的值
我晕.你是不是在看链表啊?你太着急了.先仔细看看指针的知识!structNode{structNode*next;};structNode*p=(structNode*)malloc(sizeof(s