C语言指针部分选择题a[p-a]是什么意思? B是什么意思?麻烦解释详细点

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 10:36:58
C语言指针部分选择题a[p-a]是什么意思?  B是什么意思?麻烦解释详细点

C语言指针部分选择题a[p-a]是什么意思? B是什么意思?麻烦解释详细点
C语言指针部分选择题
a[p-a]是什么意思? B是什么意思?麻烦解释详细点

C语言指针部分选择题a[p-a]是什么意思? B是什么意思?麻烦解释详细点
D是错误的,要弄清楚这个问题,首先我们要知道指针的本质是什么
指针是个存着地址的变量,因为我们每定义一个变量,内存就会给他分配空间,那么每个变量必须会有一个存储他的地方,我们称为地址,他指向谁,里面就存着谁的地址.如题*p=a;
此时p里面存的是数组a的首地址(记住这一点),还可以用取地址符&获取变量的地址,如&a[i];表示的是数组中第i个元素a[i]的地址.变量的值可以用*号获取.* 后面加一个地址,表示这个地址里面的数值(也记住,很重要).开始做题
A中,前面我们已经将p赋值为a的首地址,同理a也可以表示数组的首地址(不知道的话翻书),就是说此时他们的都表示首地址(这是关键),也就是他们的值是一样的,这里*p=a,p-a为0.所以,a[p-a] = a[0];是正确的.
B中,记得前面说过的,取地址符也可以获得地址,那么我们可以知道&a[i],是表示a[i]的地址(不是数值,是地址),这样就很明了了,*(&a[i]),不就是一个* 后面跟一个地址吗?对的,没错,那么他表示的就是地址里面的数据了.因此 B选项就 ,*(&a[i]) =a[i],是正确的
C 你懂的,不懂的话再问我.
我们来说说D
前面我们说过a可以表示数组a的首地址,我们可以通过给地址加1来获取下一个数组中的值,
首先我们用p来表示地址.*p =a ,那么*(p+1) = a[1],*(p+2) = a[2],因此用a也是一样的*(a+1) =a[1]; 同理*(a+i) = a[i], 这个时候你应该知道了.既然a[i]是一个数值,不是一个地址,那么
*(*(a+i)) = *a[i],是没有意义的.是个错误的引用.
祝你进步!

C语言指针部分选择题a[p-a]是什么意思? B是什么意思?麻烦解释详细点 C语言指针**p是什么意思 C语言:p->a,与*p->a有什么区别?是不是只有指针才能指向,即->? C语言指针,int a=1; int *p; 其中p=&a和*p=&a有什么区别?p的值是否相同? *p=*a在C语言中分别代表什么含义?*p代表指针P*a表示把指针a里的内容赋值给指针p是这样的吧?在指针中还有没位置不同表示的含义就不同的地方啊?在C语言中除了指针还有没有别的什么知识点, 来高手!求解! C语言中,指针 定义int a,*p=&a;中的*p=&a 和表达式中的 p=&a; 有什么区别? 是不是一样 C语言中 指针部分 int **p; 最好举个例子 C语言中double *p,a;p=&a;和double a,*p=&a;是不是等价的?为什么呀〜请大侠们解释一下〜是不是指针变量一定要加*?如果指针变量不加*是指什么? 怎么理解C语言指针中 *a=*b 在C语言中,int *p; int a = 100; p = &a;//这句语句的意思是什么我的理解是:指针变量p指向a的地址(取a的地址),那a地址的内容会不会被取*p = 求详解. C语言指针基本概念及其指针变量的定义是什么 C语言中指针问题:设int a[3][5],那么&a[0]的意义是什么呢?还有,设int (*p)=5;p=&a[0];那么p的含义是?*p的含义是?为什么在p前要带2个*才是指向数据的而不是只用带一个*就行了呢?小白顿首. C语言中指针的作用是什么? C语言中的指针指的是什么 c语言指针p+1与p++有什么不同 C语言中指针p与*p的区别? 设P为指针变量,下面的表达是正确的是():A.--P++,B.--P++,C.--(P+5),D.(P-5)++原因是什么: c语言定义指针问题 *p我能明白.main( ){ int a[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf(“%d,”,*(p++) );printf(“%d ”,**k);}还有**k的使用方法.