99问答网
所有问题
C语言 a=-15; printf("%u,%10u"); 结果是4294967281,4294967281 为什么? 不是15吗?
还有第二个为什么直接把 u 前面的 10 忽略掉了??
偶刚学C语言,很多东东都不懂,请位大侠讲解下O(∩_∩)O~~
举报该问题
推荐答案 2011-10-30
为什么不是15,因为u是
无符号整型
,a是-15,有符号,这里涉及的是内存存储问题,不是单单的把负号去掉的问题
10忽略,因为10在这里是要求左对齐输出10位数,不够的用空格补齐,你输出的这些数字正好十位,所以有没有是一样的结果
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/zz7teOXXt.html
其他回答
第1个回答 2011-10-30
1、u指的是无符号数,并不是绝对值
2、4294967281本来就有10位数字,所以%10u也正好把它全部不多不少的输出来
那个10指的是最少输出的位数,而不是指空格的个数
相似回答
大家正在搜
相关问题
printf中的%c,%d,%u........都分别代表输...
int a=-2; printf("%u",a);输出为:6...
c语言中的 %u 什么意思啊?
C语言中%u\n是什么意思
int a=-2;printf(“%u,a);输出结果为多少...
c语言中 %u是什么意思啊 看别人说是无符号十进制输出 但我...
unsigned short A = 10; printf(...
c语言问题,关于printf语句的输出