| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2628 人关注过本帖
标题:二维数组名的奇特现象!
取消只看楼主 加入收藏
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
快速回复:二维数组名的奇特现象!
数据加载中...
 
   



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

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