没有单独为short的2个字节设置一个符号,用%d
公司主营业务:成都网站制作、成都做网站、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出凤庆免费做网站回馈大家。
从printf函数原理来说,函数根据前面的格式字符串来强硬转换后面的参数,比如碰到%d,就表示要将参数强硬转换为int型,如果你传入的参数是short型,short型只要两个字节,那么强硬转换为int(四个字节
原来函数的参数,每一个最少要占一个计算机位长(因为参数要压栈),所以short型参数压栈时已经扩展为四个字节了(32计算机),所以即使用char型当整数输出也是可以的.
C语言中,short是定义一种整型变量家族的一种。例如short i;表示定义一个短整型的变量i。
长度
依据程序编译器的不同short定义的字节数不同。
标准定义short短整型变量不得低于16位,即两个字节。
编译器头文件夹里面的limits.h定义了short能表示的大小:SHRT_MIN~SHRT_MAX。
在32位平台下如windows(32位)中short一般为16位。
1、short和int等一样,是C或C++的一种内部数据类型。用于表示有符号整数。不同的是,他们在内存中所占的空间大小不同,short通常为int所占一半,也有一些实现为和int一样,但不会比int大。所占内存空间不同,那么可用表示的整数范围也就不同。至于具体能表示什么范围,这个问题是体系结构和编译环境相关的。
2、以下例程输出各种整型类型的大小:
#include iostream
using namespace std;
int main()
{
coutsizeof(short)endl;
coutsizeof(int)endl;
coutsizeof(long)endl;
coutsizeof(__int64)endl;
}
在VC8上编译运行结果是
2
4
4
8
也就是说short占2字节(byte),int和long一样占4字节,__int64占8字节,占字节数越多,所能表示的数的范围越大。