社区
C++ 语言
帖子详情
一道有趣的题?
cqgaoke
2006-10-26 06:11:04
void foo(int [][3] );
main()
{
int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}};
foo(a);
printf("%d" , a[2][1]);
getch();
}
void foo( int b[3][3])
{
b++ ;
b[1][1] =9;
}
等于多少?为什么?
...全文
422
20
打赏
收藏
一道有趣的题?
void foo(int [][3] ); main() { int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}}; foo(a); printf("%d" , a[2][1]); getch(); } void foo( int b[3][3]) { b++ ; b[1][1] =9; } 等于多少?为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w50698942
2006-10-28
打赏
举报
回复
学习中
skukustar
2006-10-28
打赏
举报
回复
知道了..
值得学习
zjc_love
2006-10-28
打赏
举报
回复
jixingzhong(瞌睡虫:选择了远方,只有风雨兼程!)
b 是数组指针,
明白么?
b++ 是行增加1,
它指向了下一行,
那么从当前的 b 位置开始, b[1][1] =9; 也是指向了下一行,
(原来是b=a, a[1][1] =9; 后来是b=a+1, a[2][1] =9;)
_____________________________________
9494
swimmer2000
2006-10-28
打赏
举报
回复
学习学习.
xjx19
2006-10-27
打赏
举报
回复
数组作参数时退化为指针,
学习了
dreamzone
2006-10-27
打赏
举报
回复
答案是9
失望中......-^-
wang430903
2006-10-27
打赏
举报
回复
受教育
sirguan
2006-10-27
打赏
举报
回复
同意一楼的
dodo4444
2006-10-27
打赏
举报
回复
不错 顶了
鄢老
2006-10-27
打赏
举报
回复
Jokar(贪睡鼠★御姐控☆小宠王)说得很对,
b++后相当与b=&a[1][0]
jixingzhong
2006-10-26
打赏
举报
回复
b 是数组指针,
明白么?
b++ 是行增加1,
它指向了下一行,
那么从当前的 b 位置开始, b[1][1] =9; 也是指向了下一行,
(原来是b=a, a[1][1] =9; 后来是b=a+1, a[2][1] =9;)
Jokar
2006-10-26
打赏
举报
回复
PS:没记错的话你应该教导过别人“数组退化成指针”的问题啊 :P
----------------
呵呵,谁都有犯错的时候 :)
Jokar
2006-10-26
打赏
举报
回复
捏捏偶家 健健 :)
Jokar
2006-10-26
打赏
举报
回复
to 健健;
数组作参数时 退化为指针了
blue_zyb
2006-10-26
打赏
举报
回复
lj860603(键键):
一维数组作参数,如void fun(int a[3])中的a退化为指针int*
而为数组作参数,如void fun(int a[3][3])中的a退化为指针 int (*)[3]
PS:没记错的话你应该教导过别人“数组退化成指针”的问题啊 :P
Jokar
2006-10-26
打赏
举报
回复
等于多少?
----------
9
?为什么?
--------------
void foo( int b[3][3])
b是行指针,指向一个一维数组(注意不是指向数组元素,而是整个数组)
初始状态:
b --------〉 1 2 3
4 5 6
7 8 9
b++后
1 2 3
b---------〉 4 5 6
7 8 9
经过下标运算 b[1][1] = *(*(b+1)+1) ,*(b+1)+1 指向的是 8也就是元素a[2][1]对应的空间,经过 b[1][1] =9; 修改之后 a[2][1] 空间的元素值变为 9;所以最终输出为9
cqgaoke
2006-10-26
打赏
举报
回复
没错呀.
lj860603
2006-10-26
打赏
举报
回复
blue_zyb() ,那 b++ 这句呢?
lj860603
2006-10-26
打赏
举报
回复
不是很有趣, b++应该是错误的 ,数组名是一个“常量指针”,它指向的方向是不可以改变的。
blue_zyb
2006-10-26
打赏
举报
回复
我还以为多有趣呢,有点失望。。。
输出: 9
原因:因为foo里面b[1][1] =9;把a[2][1]改成9了
每
一道
试
题
都是有解
题
密码(2018年下半年信息系统项目管理师试
题
讲解)
小虎讲解2018下半年信息系统项目管理师综合知识试
题
。 学习变得
有趣
,学习的知识,记得牢,让考试变得简单。 让考生顺利通过信息系统项目管理师的考试,获得高级资格证书。
一道
有趣
的面试
题
?
这段代码分别输出什么? char[] arr=new char[]{'a','b','c'}; System.out.println(arr); int[] brr=new int[]{1,2,3}; System.out.println(brr); 运行结果 因为char类型输出的是一个数组brr[ ]
[TRIE]
一道
有趣
的
题
[TRIE]
一道
有趣
的
题
题
目大意是:给你一串正整数(可能有重复,且数字保证在int以内),再给你一个正整数k(int以内),从这串数字中找出一个数n,使得k^n(异或)最大。 先来点
题
外话 如何深刻理解异或呢?男的和女的能生出孩子,否则就不行。(自动忽略同或) 思路 每个数字都是没有规律的,显然就只能暴力了。那么如何优雅地暴力呢?首先把每个数字的二进制存在一个字典树里(顺便就去...
一道
有趣
的数学
题
爱因斯坦曾出过这样
一道
有趣
的数学
题
: 有一个长阶梯,若每步上2阶,最后剩1阶; 若每步上3阶,最后剩2阶; 若每步上5阶,最后剩4阶; 若每步上6阶,最后剩5阶; 只有每步上7阶,最后刚好一阶...
一道
有趣
Js面试
题
,你有几种办法解决?
引子: 今天写了手撕instanceof,以我的风格来说,再写一篇今天已经算是高产了~但是,我真的忍不住想把这个
题
给大家分享一下,特别有意思,e.g. 说 var 一个 a 等于什么的时候,它即1,又2,还==3 ? 正文 var a = ????? if( a == 1 && a == 2 && a == 3 ) { console.log('amazing!') } 晚点更~欢迎评论区留言 ...
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章