c语言中short用%什么?

如题所述

short和int等一样,是C或C++的一种内部数据类型。用于表示有符号整数。
不同的是,他们在内存中所占的空间大小不同,short通常为int所占一半,也有一些实现为和int一样,但不会比int大。
所占内存空间不同,那么可用表示的整数范围也就不同。
至于具体能表示什么范围,这个问题是体系结构和编译环境相关的。你可以试试以下C++程序
#include <iostream>
using namespace std;

int main()
{
cout<<sizeof(short)<<endl;
cout<<sizeof(int)<<endl;
cout<<sizeof(long)<<endl;
cout<<sizeof(__int64)<<endl;
}
在我的电脑上VC8,编译运行结果是
2
4
4
8
也就是说short占2字节(byte),int和long一样占4字节,__int64占8字节,占字节数越多,所能表示的数的范围越大!
如: 2字节有符号整数 ,即 16位, 范围是 -2^15 ~ 2^16-1 , 2^n表示2的n次方。
温馨提示:答案为网友推荐,仅供参考
第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;
}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网