除了我们的int unsigned int我们还有其他的整形:short短整形,long int长整形,longlong int(vc6++不支持)
short: 有符号的大小为-32768~32767,无符号的大小为0~65535。他的输出格式符为"%hd"
short a = 1;//定义一个短整形的变量a sizeof(a);//sizeof取变量的大小
我们通过此判断短整型short大小为2字节。
long int:无符号的大小为0~4294967295,有符号的大小为-2147483648~2147483647.他的标准是输出格式为%ld
虽然他叫长整形,但是他的内存规定是不低于4字节就行(应编译器而异)
long int a = 12; siezof(a);
longlong int :无符号的大小为0~2^64-1,有符号的大小为-2^63~2^63-1。 但是很可惜,"VC++6.0"不支持。他的输出格式为%lld
1. longlong int a = 12; 2. printf("%lld",sizeof(a));
用哪个取决于你数据的大小。
变量的地址:
计算机的每一块空间都有一个唯一的标志代表,本质就是一个数,从0开始,到一个很大的数,32位程序是2^32-1, 64位程序是2^64-1。这个数也叫地址,就像我们的家的地址一样。
怎么取变量的地址呢? 使用符号"&",SHIFT+上面的数字7.
怎么取变量的地址呢?
int a = 12; &a//使用取地址符号(表达式没有分号,语句有分号,表达式都有一个结果)
直接使用“&”符号对变量取地址。每个变量都有自己唯一的地址,只要他没死,别人就永远占不了。
输出地址
预备知识:输出地址的输出格式为%p或者%#p。%p为16进制输出,%#p也是16进制输出,但是%#p是会以地址形式输出的。你不要思维定势了,总觉得地址只能用16进制的形式输出。他可以以10进制,2进制,8进制输出都可以。我们一般使用16进制输出。
int a = 12; printf("%p",&a);//0014ff20 printf("%#p",&a);//0x0014ff20