为您找到"
C语言中指针*p=*q与p=q有什么区别
"相关结果约100,000,000个
首先搞明白一点,printf语句中表达式的执行顺序是从右向左的,并且对于*(q++),首先进行解引用操作,再自增,即*q, q=q+1;所以说第一个printf的输出为2 2 对于第二个printf,首先执行(*q)++,再执行*p++,对于(*q)++可以转化为先执行(*q),即输出它的值,再执行(*q)=(*q)+1,最后输出...
//*p 其实就相当于a printf("%d", *p);//输出6 p=5; //结果是a也等于5 int (*p)(int a, int b); //这里的*p也只是定义p为指针 int *(*p) (int a,int b);//这里只是定义了p为函数指针 int a;int b;int *q=&a;int **p=&q;p = &b; //结果就是q=&b;(*p) = ...
p[]=*p([]),首先,它是一个数组,数组里面保存的是指针 (*p)[]则不同,首先它是一个指针,然后,它指向一个数组,但通常,再定义的时候需要指定所指向数组的大小。示例:include <STDIO.H> int main(int argc, char *argv){ char a[10]="test";char *(p[])={"hello","world!"};/...
在C语言中,可以使用指针动态分配内存,例如通过&运算符获取变量的地址,并将其赋给指针。例如,int x; int* p = &x;表示将变量x的地址赋给指针p。多级指针可以指向一个指针,这在处理二维数组等复杂数据结构时非常有用。注意事项:在使用指针时,需要特别注意区分*符号的不同含义:在声明中表示指针...
在定义指针时,int *p=&a; 与 int *p=a; 有着明显的区别。前者表示将变量a的地址赋值给指针p,而后者则表示将变量a的值赋给指针p所指向的地址。这意味着,int *p=&a; 是正确的指针初始化方式,而 int *p=a; 则是错误的,因为一个整数不能直接赋值给一个指针变量。如果是在定义指针时使用 ...
p--=0表示先对指针p所指向的内存单元赋值为0,之后,将指针p的地址减1一个内存单元的大小。可以通过如下的程序段来进行理解:int a[]={1,2,3,4}; // 定义一个int型数组,并进行初始化 int *p=&a[2]; // 定义一个int型指针变量,并指向a[2]所在的内存单元 printf("%x\n", p);...
*p1=*p2是把p1指向的变量的值改变,但p1所指向的变量不变,p1=p2,则是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址。 本回答由提问者推荐 举报| 答案纠错 | 评论 51 3 729761641 采纳率:31% 来自:芝麻团 擅长: 电脑/网络 百度产品 百度知道 其他...
p 如是出现在算术表达式中,这个星号就是乘号,表示相乘,如果是出现在声明中(如变量定义),那就表明p是一种数据类型,p*表示要声明这种类型的指针变量。p 依然可以表示相乘的运算,也可表示提取p指针指向的位置保存的值。例如:int a=9;int *p=a;printf("%d",*p);这个printf()调用中的*p表示...
p :二级指针,表示p所指向的地址里面存放的是一个指向类型的指针。p:一级指针,表示p所指向的地址里面存放的是一个类型的值。