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

来源:互联网 发布:linux书籍推荐 编辑:程序博客网 时间:2024/05/22 04:23

任务代码:

(如下)

执行情况:


知识总结

知识点1:用指针访问数组元素:

单独输出数组的名字就是相当于输出数组首元素的地址!= 数组的名字代表数组首元素的地址


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;//一步代替两步,声明并赋值地址


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


下面[ ]是一个运算符 ,用于取数组里的值


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


引用数组元素的方法:

范例:

建议使用最下面的那种方法是标准的使用指针访问数组a[10]

代表的是定义指针变量*p,将数组a的首元素地址赋值给p,此事的p代表的是a的首元素地址,然后p<(a+10)代表循环a之后的10个元素,输出值为*p代表指向a[]中值;

#include <stdio.h>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 <stdio.h>int main(){    int a[10]={1,2,3,4,5,6,7,8,9,10};    int *p;    p=a;//首元素地址赋值    while(p<a+10)    {       printf("%d ",*p++);//根据运算的优先级,先是取值再加加    }    return 0;}






心得体会: