| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3411 人关注过本帖
标题:关于数组的一个问题,请教大家,谢谢!
只看楼主 加入收藏
oyd7141
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2008-12-8
结帖率:0
收藏
 问题点数:0 回复次数:19 
关于数组的一个问题,请教大家,谢谢!
#include<stdio.h>

int main()
{
    int a[]={1,2,3,4,5};
    int *p;
    printf("%d\n",sizeof(a));
    p=a;
    printf("%d\t%d\n",sizeof(p),p);
    printf("%d\n",sizeof(p[0]));        //为什么这里得到的是4字节;
    printf("%d\t%d\n",sizeof(p[0],&p[0]));    //为这什么这里得到的是8字节
return 0;
}

运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: printf 字节 sizeof int 数组 
2020-06-23 17:11
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:0 
见逗号表达式
2020-06-23 17:38
oyd7141
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2008-12-8
收藏
得分:0 
回复 2楼 fulltimelink
谢谢你,看清楚了。这个DEV-C++字太小了,没看清楚。
printf("%d\t%d\n",sizeof(p[0]),&p[0]);    //变成4字节了,我是这个意思!
2020-06-23 18:25
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 

sizeof返回类型一般是unsigned long,建议用%lu;
指针按你前面是8字节,但%d是4字节。

不知道对错,仅供参考,还是养成良好的编程习惯比较好


梦想拥有一台龙芯3A-4000
2020-06-23 22:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 ditg
sizeof 的类型是 size_t,用 %zu
2020-06-23 23:04
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
typedef unsigned long size_t;

梦想拥有一台龙芯3A-4000
2020-06-23 23:17
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-6-23 23:17:03的发言:

typedef unsigned long size_t;

没要求必须是unsigned long
有的编译器是unsigned int
不要把实现当成唯一真理

https://zh.
2020-06-24 01:40
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-6-23 23:17:03的发言:

typedef unsigned long size_t;

这就是为什么楼上说要用 zu 的原因
不同编译器 zu 匹配不同类型 可以unsigned int 可以unsigned long

https://zh.
2020-06-24 01:41
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:0 
这个不是和编译时选择的目标平台有关系吗   x86 指针可能是4   x64可能是8

不管sizeof 返回的是4还是8    %d肯定能显示的下啊
2020-06-24 09:31
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 9楼 fulltimelink
能显示也不能随便写
printf的格式控制符 还有指定数据字节数的作用
不匹配的格式控制符 会导致读取数据错位 造成错误

https://zh.
2020-06-24 09:44
快速回复:关于数组的一个问题,请教大家,谢谢!
数据加载中...
 
   



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

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