C语言(用指针访问数组元素:)

任务代码:
(如下)
执行情况:
C语言(用指针访问数组元素:)
文章图片


知识总结:
知识点1:用指针访问数组元素:
单独输出数组的名字就是相当于输出数组首元素的地址!= 数组的名字代表数组首元素的地址
C语言(用指针访问数组元素:)
文章图片




int a[10]={1,2,3,,4,5,6,7,8,9,10}; int *p; //先声明指针变量 p=&a[0]//然后将指针赋予地址


这种写法等同于:

int a[10]={1,2,3,,4,5,6,7,8,9,10}; int *p; //先声明指针变量 p=a; //然后将指针赋予首元素地址



更简便:

int a[10]={1,2,3,,4,5,6,7,8,9,10}; int *p=a; //一步代替两步,声明并赋值地址


C语言(用指针访问数组元素:)
文章图片


*(p+i)代表的是p后面的第i个单元(每个单元就是上图的小方格)!


下面[ ]是一个运算符 ,用于取数组里的值
C语言(用指针访问数组元素:)
文章图片


a代表数组的首地址,i代表后地址后的第i个单元,d代表每个单元所占用的字节数(就是每个小方框所占用的字节数)!


引用数组元素的方法:
C语言(用指针访问数组元素:)
文章图片


范例:
建议使用最下面的那种方法是标准的使用指针访问数组a[10]
【C语言(用指针访问数组元素:)】代表的是定义指针变量*p,将数组a的首元素地址赋值给p,此事的p代表的是a的首元素地址,然后p<(a+10)代表循环a之后的10个元素,输出值为*p代表指向a[]中值;

#include int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p; for(p=a; p<(a+10); p++)//p++代表指向a[]的下一个单元,也就是顺着之后的地址依次读取 { printf("%d ",*p); } return 0; }


或者:

#include int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p; p=a; //首元素地址赋值 while(p




C语言(用指针访问数组元素:)
文章图片




C语言(用指针访问数组元素:)
文章图片



心得体会:


    推荐阅读