二维数组与指针运算
来源:互联网 发布:淘宝多个客服怎么设置 编辑:程序博客网 时间:2024/06/06 00:54
#include <stdio.h>
int main()
{ inta[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}};
inti;
int (*p)[4]=a,*q=a[0];
for(i=0;i<3;i++)
{ if(i==0)
(*p)[i+i/2]=*q+1;
else
p++,++q;
}
for(i=0;i<3;i++)
printf("%d,",a[i][i]);
printf("%d,%d\n",*((int *)p),*q);
}
此题求解输出何值?
首先我们用右左法则读int (*p)[4] = a;
得出*p是指向数组的指针,(*p)[4]中存放的是数组a每行的首地址,
而*q是指向第一行第一个元素。
if(i==0)
(*p)[i+i/2]=*q+1;
得出(*p)[0] = *q + 1; 得出第一行第一个元素被第一行第二个元素赋值2,
for(i=0;i<3;i++)
printf("%d,",a[i][i]);
先输出a[0][0],a[1][1],a[2][2],2, 4, 7;
for(i=0;i<3;i++)
{ if(i==0)
(*p)[i+i/2]=*q+1;
else
p++,++q;
}
printf("%d,%d\n",*((int *)p),*q);
*q指向第一行第三个元素。
得出: 5,3;
此题最后的答案是:2,4,7,5,3;
0 0
- 二维数组与指针运算
- 二维数组的运算与指针
- 二维数组和指针运算
- 二维指针与二维数组
- 二维数组与二维指针
- 二维数组与二维指针
- c语言二维数组的下标运算与指针偏移
- C/C++学习笔记19:指针运算与二维数组
- 二维数组与指针
- 二维数组与指针
- 二维数组与指针
- 指针与二维数组
- 指针与二维数组
- 二维数组与指针
- 二维数组与指针
- 指针与二维数组
- 二维数组与指针
- 二维数组与指针
- 信息的度量——信息熵
- React-Native组件之 TabBarIOS和TabBarIOS.Item
- 友盟 QQ登录
- 操作系统基础(二)
- Zookeeper系统模型
- 二维数组与指针运算
- 设计模式——单例模式
- android获取屏幕分辨率代码
- LeetCode 284 Peeking Iterator
- Ubuntu 16.04安装谷歌浏览器
- http://www.cnblogs.com/renyuan/archive/2012/11/07/2758291.html
- 在手机浏览器上jplayer全屏播放视频设置在播放完成或者中间停止播放后手机浏览器的网页不能上下滚屏的解决
- java基础学习之-05
- (18)内容浏览器之开发者文件夹