C语言 通过指针访问一维数组的几种方式,通过数组名访问一维数组
2017-09-25 10:37
316 查看
C语言中:
可以通过指针的++,--,+,-.以及关系运算符<(小于),>(大于),<=(小于等于)。。。来访问数组
也可以直接通过数组名,使用下标访问数组。这里把他封装成函数,以便后续复用。
可以通过指针的++,--,+,-.以及关系运算符<(小于),>(大于),<=(小于等于)。。。来访问数组
也可以直接通过数组名,使用下标访问数组。这里把他封装成函数,以便后续复用。
#include<stdio.h> #define ARRAY_LEN(array,len){ len=(sizeof(array) /sizeof(array[0]));} //使用宏定义计算数组长度。 static void printArrayFromHead(int*,int);//函数声明 static void printArrayFromTail(int*,int);//函数声明 static void printArrayByHead(int*,int); static void printArrayByTail(int*,int); static void printArrayUseArrayName(int array[],int); void main() { int array[]={1,2,3,4,5,6,7,8,9,10}; int length; ARRAY_LEN(array,length);//计算数组长度 printArrayFromHead(array,length); printArrayFromTail(array,length); printArrayByHead(array,length); printArrayByTail(array,length); printArrayUseArrayName(array,length); } static void printArrayFromHead(int* array,int length) { int *p;//定义数组指针 p=&array[length-1];//指针p指向数组最后一个元素 int i;//循环变量; printf("倒序打印数组为:"); for(i=length-1;i>=0;i--) { printf("%d ",*p);//通过“*”运算符取出指针p中存储的地址里面的数据 p--;//指针后退 }printf("\n"); } static void printArrayFromTail(int* array,int length) { int* p;//定义指针变量 p=&array[0];//指向数组首地址 // p=&array;//注意了这样写有错误,这样写的到的是局部指针变量的地址,不是数组的地址 int i;//循环变量; printf("倒序打印数组为:"); for(i=0;i<length;i++) { printf("%d ",*p);//通过“*”运算符取出指针p中存储的地址里面的数据 p++;//指针前移 }printf("\n"); } static void printArrayByHead(int* array,int length) { int *p;//定义数组的指针 p=&array[0];//指向第一个数组元素 printf("通过指针的比较来顺序访问数组:"); //数组存储是连续的,而且按地址从小到大顺序存储, // 所以可以进行地址的比较来访问数组元素 while(p<=&array[length-1]) { printf("%d ",*p); p++; }printf("\n"); } static void printArrayByTail(int* array,int length) { int *p;//定义数组的指针 p=&array[length-1];//指向第一个数组元素 printf("通过指针的比较来顺序访问数组:"); //数组存储是连续的,而且按地址从小到大顺序存储, // 所以可以进行地址的比较来访问数组元素 while(p>=&array[0]) { printf("%d ",*p); p--; }printf("\n"); } static void printArrayUseArrayName(int array[],int length) { // int length;//指针长度 // ARRAY_LEN(array,length);//调用宏计算数组长度 int i; printf("通过数组名(固定指针)访问数组:"); for(i=0;i<length;i++) { printf("%d ",array[i]); } printf("\n"); }结果:
倒序打印数组为:10 9 8 7 6 5 4 3 2 1 倒序打印数组为:1 2 3 4 5 6 7 8 9 10 通过指针的比较来顺序访问数组:1 2 3 4 5 6 7 8 9 10 通过指针的比较来顺序访问数组:10 9 8 7 6 5 4 3 2 1 通过数组名(固定指针)访问数组:1 2 3 4 5 6 7 8 9 10
相关文章推荐
- 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式
- C语言 通过指针访问一维数组,二维数组,三维数组。
- 以指针方式访问数组几种不同形式输出语句解析
- C语言_指针和数组的几种访问形式
- C语言中指针和数组的几种访问形式
- c语言 访问数组首地址的几种方式
- C语言:通过返回指针的形式找出数组的最大值和最小值
- 数组(一维和二维)与指针(C语言)
- 指针的问题5 指针访问数组的方式
- C专家编程--数组与指针(一)数组 指针 访问方式 区别
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
- 1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式
- c语言中指针,二维数组,一维数组,指针数组,二级指针,应用
- C语言 通过指针,数组名 遍历一位数组
- C语言使用指针访问数组
- C语言通过指针引用数组
- C语言通过指针和数组实现字符串倒序
- C语言笔记->通过指针引用数组
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
- C语言-指向一维数组元素的指针