C语言 - 指针数组 多级指针 二维数组 实例讲解
2013-11-11 21:57
337 查看
题目:设有下面的变量定义 int v[4][6], *p[4], **q; int j; 且设已执行了下面的语句: for(j=0; j<4; j++) p[j]=v[j]; q = p; 请分别指出下面的每句语句使哪个变量的值增加了1 (1) (*p[3])++ (2) q[3][0]++ (3) p[3][0]++
#include <stdio.h> #include <stdlib.h> void main() { int v[4][6] = { {00, 01, 02, 03, 04, 05}, {10, 11, 12, 13, 14, 15}, {20, 21, 22, 23, 24, 25}, {30, 31, 32, 33, 34, 35} }; int *p[4], **q; int j; for(j=0; j<4; ++j) { p[j] = v[j]; /* p[0] = v[0][]; p[1] = v[1][]; p[2] = v[2][]; p[3] = v[3][]; */ } q = p; // p == &p[0] == &v[0][] q == &v[0][] printf("%d %d %d\n", (*p[3])++, q[3][0]++, p[3][0]++); // 这里的 q[3][0]++ 与 p[3][0]++ 是与自增有关系, 其实最后输出的就是 q[3][0], p[3][0] 这两个值 printf("%d %d\n", q[3][0], p[3][0]); // 这里的 q[3][0] 与 p[3][0] 才是上面一行自增后的 值 printf("%d %d", q[3][0]++, p[3][0]++); // 这一句就充分证明了 自增带来的结果 printf("\n"); system("pause"); return 0; }
相关文章推荐
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 一道关于二维数组和指针数组的C语言笔试题目
- Linux C编程---指针数组简析(二维数组、多级指针)
- Linux C编程---指针数组简析(二维数组、多级指针)
- 在c语言学习中的问题(一):数组指针,指针数组,二维数组的理解与区分
- 直观理解C语言中指向一位数组与二维数组的指针
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 程序猿之--C语言细节13(二维数组和指针,&*a[i][0]的理解,数组1[e]和e[1]很可能你没见过)
- Android JNI编程(四)——C语言多级指针、数组取值、从控制台输入数组
- C语言多维数组与多级指针
- C语言二维数组与指针数组以及行指针
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- C语言 通过指针访问一维数组,二维数组,三维数组。
- [转] C语言多维数组与多级指针
- C语言中指向一位数组与二维数组的指针
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析 (C语言复习)
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
- c语言中指针,二维数组,一维数组,指针数组,二级指针,应用
- C语言中二维数组、二维指针、指向指针的数组、指向数组的指针