为您找到"
(15)若在定义语句:int a,b,c,*p=&c;之后,
"相关结果约100,000,000个
我试验了一下,结果一样,说明这两个等价,实际结合理论,比如int a[5]={1,4,5,6,7,8} *p=a *p++的意思是先求*p是a[0]=1 然后*p++的值是1,p=2; 如果是*(p++)的话,p++的值没变,p的值加1,然而*(p++)的值就不变了,所以结果一样 不知道朋友能否明白很简单啊...
【答案】:C 指针变量可以带下标引用数组元素,其引用规则是:若指针变量p指向了数组a的某元素a[i],则p[0]就是a[i],p[1]就是a[i+1],……以此类推。本题中指针变量p指向了a[2],所以p[0]就是a[2],p[1]就是a[3]……
p=&a => *p=a=1 p*=10 => *p=*p*10 => a=a*10=10 p=&b => *p=b=2 p+=5 => b=b+5=2+5=7 a=10 b=7
答案是D n,p,q这三者的关系如图所示。A错。p是指针,它里面存放的是地址值,而1是整数,类型不符,不能赋值。B错。q是指向指针的指针,*q相当于写成p一样。错误情况参考A的解释 C错。p是指向整型变量的指针(一级指针),可以存放整型变量的地址。而q是指向指针的指针(二级指针),可以存放另...
p->a是取得p指向结构体的成员a,等价于(*p).ap=&a表示p是一个指针,&a的地址赋予pstruct Data{int a,b,c;}; /*定义结构体*/struct Data * p;/*定义结构体指针*/struct Data A = {1,2,3};/*声明变量A*/int x;/*声明一个变量x*/p = &A ; /*让p指向A*/x = p->a;...
int*p=a;scanf_s("%d",*p);有两个错误:一是,首先要声明一个普通变量a,int a;二是,输入语句中不能使用*p,而要使用p或&a。正确的程序如下:int a;int *p=&a;scanf_s("%d",p);有什么问题请留言。scanf
这个用*p1=*p2应该也是对的 你可以实验一下 若定义int a,b,*p1=&a,*p2=&b;使p1指向b的赋值语句()不好意思。。。p1是指向的a的地址,*p2是指向的b的地址。*p1的值是a地址上数的值,*p2的值是b地址上数的值。&p2是一个地址,*&p2才代表一个数。(p1指向b的赋值语句()答案...
在C语言中,假设我们有int a[10],*p=&a[1]; 这里p是指向数组a中第二个元素的指针。那么p+5实际上表示的是p所指向的地址基础上加上5个元素的大小。在大多数情况下,这个结果确实会指向a[6]的地址,但在一些特殊情况下,比如数组越界或内存对齐问题,p+5可能并不会严格等于a[6]的地址。在C...
int&a的时候,编译器不会给a分配内存空间,因为它只是另一个变量的标记;&a是存放a的内存地址,比如变量a=1,&a就等于存放这个1的内存地址的数值;例:include<stdio.h> intmain(){ inta[2]={1,2};intb=5;int*p1=a;int*p2=&a;printf("b:%d&b:%d\n",b,&b);printf("a[]:%d&a...