标题:二维数组名的奇特现象!
取消只看楼主
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
 问题点数:0 回复次数:2 
二维数组名的奇特现象!
最近我温习了一下指针,发现了一些奇特的现象,请各人达人赐教,偶感激涕零!
#include "stdio.h"
main()
{
    
     int b[2][3]={2,6,5,4,7,8};

     printf("\n%d\t%d\t%d\n",b,b[0],&b[0][0]); /* 二维数组名是从二维数组中第一行(一维数组)的首地址是二维数*/                                                 /*   组中的第一个元素的首地址 */

     printf("\n%d\t%d\t%d\n",*b,*b[0],b[0][0]);   /* 这里第一个输出不同,后面两个相同.为什么?*/
    
     printf("\n%d\t%d\t%d\n",b,*b,&b);        /*更绝的是这一行的输出,全部相同.*/
    
     printf("\n%d\t%d\n",b+1,&b+1);       /* 这两个数输出为什么不相同.为什么又和下面一行输出效果一样,*/
                                          /* 请问达人为什么?  */
     printf("\n%d\t%d\n",*(b+1),*(&b+1));   /*和上面一行输出完全一样*/

}

下面是在两个不同的编译器中运行的结果,只有一些地址不同,但本质上是一样的.其余相同.

[[italic] 本帖最后由 way3 于 2008-1-13 15:49 编辑 [/italic]]

数组名1.jpg (6.49 KB)


数组名2.jpg (7.71 KB)
搜索更多相关主题的帖子: 奇特现象 printf col main 
2008-01-13 14:53
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
得分:0 
回复 3# 的帖子
那是地址的不一样,其本质还是一样的.谢谢
2008-01-13 15:39
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
得分:0 
谢谢龙虾,多谢大家!
2008-01-13 20:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-197325-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.434630 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved