第1个回答 推荐于2016-05-25
没有单独为short的2个字节设置一个符号,用%d
从printf函数原理来说,函数根据前面的格式字符串来强硬转换后面的参数,比如碰到%d,就表示要将参数强硬转换为int型,如果你传入的参数是short型,short型只要两个字节,那么强硬转换为int(四个字节
原来函数的参数,每一个最少要占一个计算机位长(因为参数要压栈),所以short型参数压栈时已经扩展为四个字节了(32计算机),所以即使用char型当整数输出也是可以的.本回答被提问者采纳
第2个回答 2009-01-24
short代表短整型
是编程字符类型的一种
长度为16位
数值范围为-32768---32767
第3个回答 2019-08-06
如果系统中int 和 short的大小相同,用%d就行,但是这样的程序被移植到其他系统(两种类型大小不一样的系统)中会无法正常工作。所以%hd最好。 long用%d还是%ld同理。
第4个回答 推荐于2018-02-27
%hd
例如:
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned short ushort = 0;
short nshort = 0;
scanf("%hd%hd", &ushort, &nshort);
printf("ushort=%u\n", ushort);
//以下两句等效
printf("nshort=%hd\n", nshort);
printf("nshort=%hd\n", nshort);
return 0;
}本回答被网友采纳