C语言指针选择题 求解析

谢谢... 谢谢 展开
 我来答
My_Persistence
推荐于2016-07-25 · TA获得超过3465个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:409万
展开全部

int a[];    数组的数组名本质上是个地址常量。示例程序如下:

#include<stdio.h>
int main()
{
int a[]={1,2,3,4,5,6,7,8,9,10};
int *p=a;                //指针变量p指向数组a
int i;
printf("%x\n\n",a); //以16进制输出数组名a的地址值
for(i=0;i<10;i++)
printf("%x\n",&a[i]); //以16进制输出数组元素的地址值
putchar('\n');
for(i=0;i<10;i++)
printf("%-4d",a[i]);    //输出数组的元素
return 0;
}

运行上面程序,你会发现输出的a的值与数组首元素的地址值是相同的,即a == &a[0],由于数组名是个地址常量,它是不能进行自加或自减运算的,也不能做算术运算。引用数组元素的方式:

(1)a[i];

(2)p[i];        //前提是p=a;即指针变量p已经指向数组a了

(3)*p或*(p+i)或*(p++)或*(p--)    //变量是可以进行自加或自减运算的

指针变量存放的是地址值,即指针就是地址。

数组元素地址的表示方法:

(1)&a[i];    //&为取地址符

(2)&p[i];    //前提是p=a;即指针变量p已经指向数组a了

(3)p++或p--;    //其中指针变量p表示当前指向的数组元素

(4)p+i或p-i

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式