c语言int是什么意思:整数类型,存整数值
c语言int是什么意思,int是C语言内置的整型数据类型,用来存储整数,不能保存小数,在32位编译环境下占用4字节内存,取值范围是-2147483648到2147483647,你可以用它定义变量接收年龄、计数、编号这类不带小数点的数据;适用边界为:只适合没有小数部分的数值计算,需要存储小数时不能使用int,必须选用float或double类型,初学C语言写循环计数器、简单数字判断优先选int,是程序里最常用的基础类型。
int变量的定义与读写操作
定义int变量的基础写法为int变量名;,写完这条语句,系统会在内存分配对应大小空间,用来存放整数。你也可以在定义时直接赋值,写法intnum=10;,这一步会把数字10存入变量num。读取变量数值,直接写变量名即可参与运算,例如num+5;修改变量数值,用赋值语句num=20;,新数值会覆盖内存里原来存储的数据。变量命名只能用字母、数字和下划线,不能以数字开头,不能使用C语言保留关键字当做变量名称。
int支持基础四则运算,加减乘除都可以直接写表达式。两个int数字相除,结果会自动舍弃小数部分,只保留整数,比如5/2得到结果2,不是2.5。如果你想要保留小数结果,需要把其中一个操作数强制转换为浮点类型。
溢出,是int最常见的错误。
当你给int变量存入超出它取值范围的数字,会发生整数溢出,计算结果会出现错乱,编译器大多不会主动报错。32位int最大值是2147483647,给这个数值再加1,得到的结果会变成负数,程序逻辑直接出错。处理超过int上限的大数,可以改用longlong类型,该类型占用8字节,取值范围更大。
int在不同编译环境的内存差异
| 编译环境 | int占用字节 | int取值范围 |
|---|---|---|
| 32位系统编译器 | 4字节 | -2147483648~2147483647 |
| 16位老旧编译器 | 2字节 | -32768~32767 |
| 64位系统编译器 | 4字节 | -2147483648~2147483647 |
64位操作系统下,int依然大多为4字节,不要把操作系统位数和int字节数直接划等号。决定int占用内存大小的是编译器,不是操作系统本身。你可以用sizeof(int)代码,直接在程序中查询当前编译环境里int占用多少字节,这个方法具备跨环境通用性。
int的输入输出写法
读取控制台整数存入int变量,使用scanf函数,格式占位符写%d。完整示例scanf("%d",&num);,变量前面必须加取地址符号&,忘记写&会造成程序运行异常。向控制台打印int变量的值,使用printf函数,同样搭配%d占位符,示例printf("%d",num);。%d只能用于int类型,不能用来打印浮点类型数据,混用会输出乱码。
unsignedint是int的无符号版本,它只存储非负整数,没有负数区间,4字节的unsignedint取值范围为0到4294967295。当你确定变量只存放0和正数,且需要更大上限时,可以选用这个类型。无符号类型和普通int混合运算时,普通int会自动转为无符号类型,容易产生意料之外的负数判断错误。
写代码时,int变量在使用前最好初始化。未初始化的局部int变量,内存里会保留随机垃圾值,直接拿来参与计算,得到的结果不可预测。全局int变量不手动赋值时,系统会自动初始化为0,这是局部变量和全局int变量一个明显区别。
int适合计数、索引、序号这类离散整数场景,浮点运算、高精度大数场景不适合使用。
