索引法和指针法访问数组
来源:互联网 发布:php cli模式 编辑:程序博客网 时间:2024/06/05 19:33
访问数组有两种形式:
1. 通过数组名和索引组合访问数组元素
2. 通过指针变量操作数组元素,数组中各个元素在内存中都是相邻排列的,
相邻元素的地址只相差一个元素的字长,所以可以通过一个数组元素型指针
加上要访问数组元素的地址偏移量即可获取该元素地址,根据地址就能获取对应内存的值。
eg:
#include <stdio.h>#define SIZE 10int main(void){ char a_ch[SIZE] = "student"; /* 定义并初始化a_ch */ int a_int[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; /* 定义并初始化a_int */ /* 定义并初始化两个数组元素型指针 */ char * p_ch = a_ch; char * p_int = a_int; printf("a_ch[4] = %c, a_ch[3] = %c\n", a_ch[4], a_ch[3]); /* 使用索引法输出元素 */ printf("&a_ch[4] = %p, &a_ch[3] = %p\n", &a_ch[4], &a_ch[3]); /* 使用索引法输出两个元素地址 */ printf("&a_ch[4] - &a_ch[3] = %d\n", &a_ch[4]-&a_ch[3]); /* 使用索引法输出两个元素之间的地址偏移量 */ printf("a_int[4] = %d, a_int[3] = %d\n", a_int[4], a_int[3]); /* 使用索引法输出元素 */ printf("&a_int[4] = %p, &a_int[3] = %p\n", &a_int[4], &a_int[3]); /* 使用索引法输出两个元素地址 */ printf("&a_int[4] - &a_int[3] = %d\n", &a_int[4]-&a_int[3]); /* 使用索引法输出两个元素之间的地址偏移量 */ /* 使用指针法输出两个元素的地址 */ printf("p_ch + 4 = %p, p_ch + 3 = %p\n", p_ch + 4, p_ch + 3); printf("p_int + 4 = %p, p_int + 3 = %p\n", p_int + 4, p_int + 3); /* 使用数组名+地址偏移量组合访问数组元素 */ printf("%d\n", *(a_int + 2)); /* 等价于a_int[2]获取的值 */}
运行结果:
阅读全文
0 0
- 索引法和指针法访问数组
- 用指针法访问数组元素
- 通过索引或指针对数组元素进行访问
- 学习笔记---指针法访问数组、数组的实质、数组/指针作为函数参数
- 数组和指针表示法
- 用指针访问数组
- 字符数组指针访问
- 数组 指针访问
- 指针访问数组1
- 指针访问数组2
- 指针访问二维数组
- 指针访问数组
- 利用指针访问数组
- 指针访问多维数组
- 指针访问二维数组
- 指针访问多维数组
- 数组指针和指针数组的区别,以及如何利用他们访问数组里面的元素
- c++ 基础 指针访问数组两种方法 下标法 指针法
- 二、安装Spark集群
- 56.合并间隔
- 算法——字符串匹配之KMP——看不懂算我输
- coderforces-#428三道水题
- 生成全排列
- 索引法和指针法访问数组
- 重新开博
- 网易内推笔试编程题2
- 关于Tomcat性能方面的优化
- angularjs 笔记(一)
- 网易2017内推 [编程题]操作序列@Java
- Linux命令:tab,cd,ls,清屏,系统目录结构
- 【模板】【数论】gcd和exgcd
- struts2_2