C语言中short与int有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中short与int有啥区别相关的知识,希望对你有一定的参考价值。
short在内存中占2个字节,即16个二进制位,能表示的最大为-2^15~2^15-1即十进制整数-32768~32767
int在内存中占4个字节,即32个二进制位,能表示的最大为-2^31~2^31-1即十进制整数-2147483648~2147483647
比如说你定义short,输入32768就会出现上溢,在输出就不是32768了
参考技术A int占一个机器字长。在32位系统中int占32位,也就是4个字节,而在16位系统中,int占16位,即2个字节。C++标准只限制了shortint不能超过int的长度,也可以说没什么大的不同
希望能帮到你 参考技术B int占一个机器字长。如果在32位系统中int占32位,也就是4个字节如果在16位系统中int占16位,即2个字节。short的大小始终为2字节 参考技术C 根据不同的系统和编译器有不同的结果,总的来说short的长度小于等于int的长度,
c语言中,声明和定义有啥区别
参考技术A C语言里可能经常会说:声明变量时不会分配内存,定义变量时才会分配内存。
局部变量的声明即是定义:
void fun()
int a = 1; //既是声明,也是定义,初始值为1
int b; //既是声明,也是定义,初始值伪随机。
全局变量只能定义一次,可以声明多次,在全局变量不可见的地方但又想使用就得进行声明。
同一个文件中,比如main.c:
extern int a; //声明,不再分配内存,extern关键字表示此变量已在其它地方定义。
void fun()
printf("%d\n",a); //此处用到了全局变量a,而a是在后面定义,所以需要在前面再声明一次。
int a = 1; //全局变量a定义,为它分配内存
int main()
fun();
return 0;
不同文件中:
fun.h:
void fun(); //函数声明
fun.c:
extern int a; //声明,不再分配内存,extern关键字表示此变量已在其它地方定义。
//函数定义
void fun()
printf("%d\n",a); //此处用到了全局变量a,而a是在另外一个源文件中定义,所以需要在前面再声明一次。
main.c:
#include "fun.h"
int a = 1; //全局变量a定义,为它分配内存
int main()
fun();
return 0;
前面主要是针对变量的声明和定义的说明,当然也提到了函数的声明与定义。
函数和变量一样,使用前一定要先声明或者定义,定义本身也是一次声明。
//此处定义函数,有函数体,当然也是一次声明。
void fun()
printf("hello world\n");
int main()
fun(); //fun函数在前面已经定义,所以可直接调用
return 0;
另一例子:
void fun();//此处须声明一次(没有函数体),main函数才能调用它。
int main()
fun(); //fun函数在后面定义。
return 0;
//此处定义函数,有函数体,当然也是一次声明。
void fun()
printf("hello world\n");
以上是关于C语言中short与int有啥区别的主要内容,如果未能解决你的问题,请参考以下文章