社区
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;
}
等于多少?为什么?
...全文
455
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了
Longest Common Prefix(最长相同前缀)
Write a function to find the longest common prefix string amongst an array of strings.(找出字符串数组中的最长相同前缀字符串)1.个人分析 思路一:采用BF法。首先取第一个字符串作为比较字符串,然后将该字符串的每个字符与其他字符串逐个进行比较,将所有相同的字符保存就是最终结果。2.个人解法string longe
【LeetCode】14. Longest Common Prefix 最长相同前缀
一、概述 给出n个字符串,返回它们的最长相同前缀。 我知道我的方法肯定是最蠢的,按列找,最差是O(n^2)的时间复杂度,但自己没有想到更好的。 我猜较好的方法肯定用了剩余的空间,否则我的空间复杂度不会这么低。 二、分析 1、我的思路 大模拟,按列遍历直到找到不同或者到达最短字符串的最后一位。 有一个地方要注意: while(j<strs.size()&&...
Longest Common Prefix 字符串数组中查找最长相同前缀字符串@LeetCode
package Level2; import java.util.Arrays; /** * Longest Common Prefix * * Write a function to find the longest common prefix string amongst an array of strings. * */ public class S14 { publ
LeetCode 14. Longest Common Prefix 找字符串数组最长相同前缀
题
目: Write a function to find the longest common prefix string amongst an array of strings. Subscribe to see which companies asked this question. public class Solution { public Strin
算法:最长公共前缀(longest-common-prefix)。
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章