您的位置:首页 > 编程语言 > C语言/C++

C语言通过指针引用数组

2016-12-15 20:53 267 查看
输出数组中的全部元素(下标法):

#include<stdio.h>
int main()
{
int a[10],i;
for(i=0; i<10; i++)
a[i]=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,a[i]);

}




输出数组中的全部元素(通过数组名计算元素的地址,找出元素的值):

#include<stdio.h>
int main()
{
int a[10],i;
for(i=0; i<10; i++)
*(a+i)=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,*(a+i));
}




输出数组中的全部元素(用指针变量指向元素):

#include<stdio.h>
int main()
{
int i,*p;
int a[10];
p=a;
for(i=0; i<10; i++)
*(p+i)=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,*(p+i));

}




以上为3种形式,可见这三种结果一样。

以下这一代码需要注意:

#include<stdio.h>
int main()
{
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a;///这一行很重要,如果没有这一行不会出现你想要的东西哦。这行代码的用处就是在下一次循环开始前,确保指针p指向数组的首地址。
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
}


由上一代码的实验结果可知:虽然定义数组时指定它包含10个元素,但指针变量可以指到数组以后的内存单元,系统并不认为非法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针