| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:关于数组2
只看楼主 加入收藏
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
结帖率:70%
收藏
 问题点数:0 回复次数:5 
关于数组2
size_t a=0;
printf(“%zd”,a);


为什么输出的结果是 zd    size_t 是不是使变量输出的结果是占用的字节数?
2015-08-14 21:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
size_t 应该用 %zu
ssize_t 才是 %zd
当然,输不出结果是因为你用的C库太老旧,换一个试试。
顺便问一下,你用的是什么编译器?
2015-08-15 09:25
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
size_t在内部应该定义为unsigned int吧

一片落叶掉进了回忆的流年。
2015-08-15 11:17
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:0 
回复 2楼 rjsp
C-free 5         书上不是这样讲的噢- -, 书上说 %zd 是应用于size_t的。。。没有z是错误的,但是我编译的是时候没有z才会出现结果,有z就不对了。。

好好学习,天天向上!
2015-08-15 19:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
vs用"%zd"可以正確輸出,c-free用的編譯器不知道。另外,size_t祗能保證是unsigned型的,但它可能是__int64或int,具體是哪個,取決於目標平臺,也就是說,這數字從16位到64位都有可能。

授人以渔,不授人以鱼。
2015-08-15 20:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
zd/zu這樣的格式掩碼,是C99新加的,在vs2013以前的vc中,都不支持,vs2015支持C++11,故能正確輸出,但MSDN幫助文檔是沒有這個的。這本來沒什麼必要,在以前版本的vs中,用u或lu、ld等都沒太大,無非是注意數值是否太大溢出默認的數據尺寸而已。

授人以渔,不授人以鱼。
2015-08-15 21:21
快速回复:关于数组2
数据加载中...
 
   



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

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