多维数组元素的下标引用于指针访问
2016-03-06 19:46
260 查看
在这儿值介绍二维数组元素的访问方式,三维、四维……的与之类似。
先用一位数组的相关知识来抛砖
接下来就是引出来的玉
先用一位数组的相关知识来抛砖
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //1、一维数组元素的下标引用与指针访问 int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; printf("%d\n", *(arr + 2)); //数组名相当于一个指针,加减一个整数后还是一个指针,因为想要获得 //它里面保存的内容,必须要解引用 printf("%d\n", *(2 + arr)); printf("%d\n", arr[2]); printf("%d\n", 2[arr]); //因为 *(arr+i)与*(i+arr)的含义相同,所以类似的arr[i]与i[arr]的含 //义也相同(由程序输出结果可知) system("pause"); return 0; }
接下来就是引出来的玉
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //2、多维数组可以都可以当做一位数组 int main() { int calendar[3][7] = { { 1, 2, 3, 4, 5, 6, 7 }, { 8, 9, 10, 11, 12, 13, 14 }, { 15, 16, 17, 18, 19, 20, 21 } }; int *p = calendar[1]; printf("%d\n", sizeof(calendar[1])); //输出结果为28 //数组calendar的可以理解为是一个一位数组,它包含三个元素,每个元素是一个含有 //7个整型元素的一位数组。那么就可以理解为什么输出为28了,28 = 7 x sizeof(int) printf("%d\n", *p); //根据输出为8也可以确定p(calendar[1])确实是指向了数组中的第8个元素 printf("%d\n", calendar[1][5]); printf("%d\n", *((calendar[1]) + 5)); printf("%d\n", *(*(calendar + 1) + 5)); //二维数组的元素用指针和数组下标两种不同的访问方式 system("pause"); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char *p = "abcdefg"; printf("%c\n", *(p + 3)); printf("%c\n", p[3]); //指针指向的内容同样可以用数组下标来引用 system("pause"); return 0; }
相关文章推荐
- 【郑轻-oj】-1048: 阶乘表(数据太大用double)
- php checkbox复选框值的获取与checkbox默认值输出方法
- 调用dll相关
- 当前主流的导航控制器手势滑动效果
- mysql阅读笔记八
- 阿里巴巴2016校招笔试题(含答案、解析)
- Struts2框架具体解释
- 实现一个反向传播人工神经网络
- 20145203盖泽双问卷调查
- Python-Day01-task
- ListView嵌套GridView使用详解及注意事项
- listView里面添加gridview
- eclipse快捷键
- 学习莫队算法、、、
- hello node world
- 达达日志系统(一)收集
- 如何搭建java开发环境
- 【一周读书】哲学家,你们都干了些什么?
- 动态加载图片的Adapter
- 数据仓库-信贷管理系统