永发信息网

c语言中说明符问题,用long long u=55,在用printf()函数输出时,分别用%ld和

答案:3  悬赏:60  手机版
解决时间 2021-03-29 15:39
  • 提问者网友:我一贱你就笑
  • 2021-03-28 18:55
c语言中说明符问题,用long long u=55,在用printf()函数输出时,分别用%ld和
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-03-28 19:20
%ld的转义字符并不是一定输出不了55.
这个取决于系统对int类型的定义。也取决于你系统的大小端存储问题。

系统类型情况:当你的系统的是16位的,你的int就是2个字节。而long long 类型是标准的8字节类型不受系统限制,long int 是标准的4字节。 %lld是long long int类型的转义字符。 %ld 是 long int 类型的转移字符。此处你的u = 55.此处并没有超出long int 的范围所以这种情况输出的都是55.

大小端情况:
举例: u=55;long long int 如果存储方式为: 0x 37 00 00 00 00 00 00 00
同时你的编译器将对long int 取数为 long long int 的低4位。那么你的%ld输出可能是0
如楼上说所,也就是类型不匹配,当然同时取决你的编译器。我使用的gnu g++ 和gnu gcc 编译你的代码都没有问题。都能输出55追问我用的是安卓手机上的C4droid,电脑上的还没试过~不好意思啊,刚刚我又试了一次,可以了~追答我没用过你说的这个编译器。
全部回答
  • 1楼网友:渡鹤影
  • 2021-03-28 20:38
你是怎么好的?我刚才试了一下也不行
  • 2楼网友:未来江山和你
  • 2021-03-28 19:52
类型不匹配啊!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯