请教各位老师了,帮我解释下。

xiao4623581 2010-03-12 11:18:46
这段代码的结果为1,但我不是很理解,麻烦各位给解释下
#include<stdio.h>
int main()
{
int a[3][2]={(0,1),(2,3),(4,5)};
int *p;
p=a[0];
printf("%d\n",p[0]);
}


还有int a[3][2]={(0,1),(2,3),(4,5)}等同于int a[3][2]={1,3,5}嘛?麻烦给解释下
在这里谢谢各位老师大侠了。
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang06905411 2010-03-12
  • 打赏
  • 举报
回复
自学,正发愁的路过
看不懂。
huanmie_09 2010-03-12
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{
int a[3][2]={(0,1),(2,3),(4,5)};
int i, j;
int *p;
p = a[0]; /*p指向数组a的第一行第一个元素的地址*/
printf("%d\n", p[1]); /*打印数组第一行第二个元素*/
printf("\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 2; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
cy330206 2010-03-12
  • 打赏
  • 举报
回复
楼主的问题出现在多维数组的初始化问题上 int a[3][2]={(0,1),(2,3),(4,5)};
这里面的逗号表达式结果和int a[3][2]={1,3,5}这样的
tan870426 2010-03-12
  • 打赏
  • 举报
回复
int a[3][2]={{0,1},{2,3},{4,5}};
这样应该就是你想要的结果了
tan870426 2010-03-12
  • 打赏
  • 举报
回复
int a[3][2]={(0,1),(2,3),(4,5)}等同于int a[3][2]={1,3,5};
(0,1),(2,3),(4,5)也就是三个逗号表达式结果就是1 3 5
cy330206 2010-03-12
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
int a[3][2]={{0,1},{2,3},{4,5}};
int *p;
p=a[0];
printf("%d\n",p[0]);
}
huanmie_09 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]
int a[3][2]={(0,1),(2,3),(4,5)}等同于int a[3][2]={1,3,5}嘛?
——打印出来看下就知道了,是就1,3,5起作用
[/Quote]
UP。
又见逗号表达式
昵称很不好取 2010-03-12
  • 打赏
  • 举报
回复
这样给多维数组赋值
    int a[3][2]={{0,1},{2,3},{4,5}};
昵称很不好取 2010-03-12
  • 打赏
  • 举报
回复
int a[3][2]={(0,1),(2,3),(4,5)}等同于int a[3][2]={1,3,5}嘛?
——打印出来看下就知道了,是就1,3,5起作用
赵4老师 2010-03-12
  • 打赏
  • 举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧