[C]基本数据类型:整型(int)用法详解
1.整型int
C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负。int是整型之一,一般被称为整型。以后,在不产生歧义的情况下,我们把整数类型和int都称为整型。
int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数。标准规定int的最小取值范围是-32767到32767。int的取值范围因机器而异,但是一定要大于或者等于-32767到32767。一般来说,int占用一个字的内存空间。因此,字长为16位(Bit)的旧式IBM兼容机使用16位来储存整型int,取值范围是
-32768到32767。目前的个人电脑一般都是32位字长的,这些电脑中,int一般也是32位的,取值范围是-2147483648到2147483647。对于使用64位CPU的电脑,使用更多位储存int也是很自然的事情,取值范围当然也会更大。
2.声明int类型的变量
正如我们在以前的教程里看到的那样,int用于声明整型变量:以int打头,后面跟着变量的名字,最后以分号(;)结束。例如:
int erns; /*声明一个变量*/
/*注意:一定要用逗号(,),不能用分号(;)*/
int hogs, cows, goats; /*声明三个变量*/
以上声明创建了变量,但是没有给它们提供“值(value)”。在前面的教程中,我们已经用了两种方法使变量获得“值”。一种是赋值:cows = 500;。另一种是使用scanf函数:scanf( "%d", &goats );。下面我们来学习第三种方法。
3.初始化变量
初始化变量是指给变量赋初值:声明变量的时候,在变量名的后面写上等号(=),然后写下你希望赋予变量的“值”。例如:
int hogs = 21;
int cows = 32, goats = 14;
int dogs, cats = 94;
以上声明创建了变量,并且为这些变量分配了空间,同时也赋了初值。注意,第三行中只有cats被初始化为94,而dogs没有被初始化!如下图:
4. int常量
上面的例子中,21、32、14,以及94都是整数常量。C语言中,整数常量的默认类型是int。如果整数常量的大小超过了int的取值范围,那么编译器将会把这个整数常量当作long int类型来处理,这个我们后面还会讲到。21、32、14和94都在int的取值范围之内,因此它们都是int常量。
5.输出int型数据
我们可以用printf函数来输出int型数据。正如我们在前面的教程中看到的那样,占位符%d代表输出的是int型数据,它告诉printf函数在什么地方输出相应的int型数据。%d也被称为格式限定符(format specifier),因为它指定了printf函数应该使用什么形式来输出数据。printf函数的第一个参数只能是字符串,这个字符串被称为格式串(format string)。格式串中有多少个%d,我们就应该相应地提供多少个int型参数给printf函数。int型参数可以是int型变量,int型常量,以及结果为int型的表达式等。例如:
int year = 2005; /* year是int型变量*/
printf( "Today is %d-%d-%d ", year, 9, 20 + 9 ); /* 20 + 9是加法表达式*/
保证格式限定符的数目和参数数目一致是我们的责任,编译器不负责捕捉这种错误!例如:
#include <stdio.h>
int main(void)
{
int ten = 10, two = 2;
printf("%d minus %d is %d ", ten ); /*少写了两个参数*/
getchar(); /*等待用户按回车*/
return 0;
}
这个程序可以通过编译,但是运行结果将会出乎意料,因为我们少写了两个参数。标准规定,如果格式限定符的数目大于参数数目,则printf函数的行为是未定义的;如果参数数目大于格式限定符的数目,则多余的参数会被忽略。
6.八进制(octal)和十六进制(hexadecimal)
C语言中,整数常量默认是十进制(decimal)整数。通过在整数常量前面加上特定的前缀,可以把它设定为八进制或者十六进制整数。前缀0x或者0X把整数常量设定为十六进制整数。注意,是数字0,而不是字母O,别搞错了哦!例如:十进制的16用十六进制来表示是0x10或者0X10。在整数常量前面加上前缀0,表示它是八进制整数。注意,是数字0,而不是字母O。例如:十进制的16表示为八进制就是020。
7.以八进制或者十六进制形式输出数据
使用格式限定符%o可以以八进制的形式输出整数。注意,是小写字母o,不是数字0。使用%x或者%X可以以十六进制的形式输出整数。小写x表示输出使用小写字母,大写X表示输出使用大写字母。使用%#o,%#x或者%#X,得到的输出将包括前缀0,0x或者0X。例如:
#include <stdio.h>
int main(void)
{
int x = 200;
printf("dec = %d; octal = %o; hex = %x; HEX = %X ", x, x, x, x);
printf("dec = %d; octal = %#o; hex = %#x; HEX = %#X ", x, x, x, x);
getchar();
return 0;
}
这个程序的输出是:
dec = 200; octal = 310; hex = c8; HEX = C8
dec = 200; octal = 0310; hex = 0xc8; HEX = 0XC8
1.其它整数类型
int是C语言的基本整数类型,可以满足我们处理一般数据的需求。C语言还提供了四个可以修饰int的关键字:short、long、signed,以及unsigned。利用这四个关键字,C语言标准定义了以下整数类型:
1) short int(可简写为short),和int一样,也是有符号整数
2) long int(简写:long),有符号整数
3) long long int(简写:long long),C99标准添加的类型,
有符号整数
4) unsigned int(简写:unsigned),无符号整数,不能表示负数
5) unsigned long int(简写:unsigned long),无符号整数,
不能表示负数
6) unsigned short int(简写:unsigned short),无符号整数,
不能表示负数
7) unsigned long long int(简写:unsigned long long),
C99添加的类型,无符号整数
8)所有没有标明unsigned的整数类型默认都是有符号整数。
在这些整数类型前面加上signed可以使读者更清楚地知道
这些是有符号整数,尽管有没有signed都表示有符号整数。
例如:signed int等同于int。
一般我们把short称为短整型,把long称为长整型,把long long称为超长整型,把int称为整型。unsigned打头的那些整数类型统称为无符号整型。例如:我们称unsigned short为无符号短整型。以此类推。
[C]基本数据类型:整型(int)用法详解的更多相关文章
- mysql数据类型——整型INT(m)
1.整形分为四种 tinyint smallint mediumint int bigint 注意: 右侧的取值范围是在未加unsigned关键字的情况下,如果加了unsigned,则最大值翻倍,如t ...
- 基础数据类型:整型int、布尔值bool、字符串str、与for循环
1.整型 int() p2 long 长整型 p3 全部都是整型 2.布尔值 bool() True --- int() int(True) int() --- True bool(int) 注意点: ...
- go中整型的用法小结
示例 // 整型的用法小结 // 注意: // 整型变量在使用时,遵循保小不保大的原则 // 尽量使用占用空间小的数据类型 package main import ( "fmt" ...
- GOLANG 基本数据类型 整型
基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位 ...
- 【转载】C#中使用int.Parse方法将字符串转换为整型Int类型
在C#编程过程中,很多时候涉及到数据类型的转换,例如将字符串类型的变量转换为Int类型就是一个常见的类型转换操作,int.Parse方法是C#中专门用来将字符串转换为整型int的,int.Parse方 ...
- Golang的基础数据类型-整型
Golang的基础数据类型-整型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.整型概述 Go语言的整数类型一共有10个. int: 默认是有符号(signed)整形,占用空间 ...
- GO语言学习——基本数据类型——整型、浮点型、复数、布尔值、fmt占位符
基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8.int16.int32.int64 对应的无符号整型:uint8.uint16.uint32.uint64 其中,uint8就是我们熟 ...
- Python整型int、浮点float常用方法
#!/usr/bin/env python # -*- coding:utf-8 -*- # Python整型int.浮点float # abs(x) # 返回数字的绝对值,如abs(-10) 返回 ...
- 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型
在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...
随机推荐
- 在网页中显示CHM (c# csharp .net asp.net winform)
CHM即“已编译的帮助文件”,主要由.hhc(目录文件)..hhk(索引文件)以及相应的帮助主题文件(.html,.htm)这些内容编译而成. 方法对比 在网页中显示CHM内容,大致有以下几种办法: ...
- 详解javascript,ES5标准中新增的几种高效Object操作方法
1.Object 对象 (JavaScript) 提供对所有 JavaScript 对象通用的功能.参考网站:https://msdn.microsoft.com/zh-cn/library/kb6t ...
- [Java]Hessian客户端和服务端代码例子
简要说明:这是一个比较简单的hessian客户端和服务端,主要实现从客户端发送指定的数据量到服务端,然后服务端在将接收到的数据原封不动返回到客户端.设计该hessian客户端和服务端的初衷是为了做一个 ...
- 用CSS3实现背景的固定
今天放假了,正好最近养成了没事泡泡博客园的习惯,自己也有了博客..不得不吐槽一下博客园为什么页面这么古朴,,带的几个模版也没啥意思,反正不符合我口味,幸亏后台提供了编辑CSS的功能,于是我就搬来现有的 ...
- First glance in Go
Because I forgot to install the Chinese input in this OS, I have to use English input. The first pro ...
- DROP_SNAPSHOT_RANGE过程不能清理表RM$_SNAPSHOT_DETAILS
今天在测试.验证DROP_SNAPSHOT_RANGE不能彻底快照的过程中遇到了DROP_SNAPSHOT_RANGE无法清理WRM$_SNAPSHOT_DETAILS表中数据的情况,测试服务器版本为 ...
- Activiti之 Exclusive Gateway
一.Exclusive Gateway Exclusive Gateway(也称为XOR网关或更多技术基于数据的排他网关)经常用做决定流程的流转方向.当流程到达该网关的时候,所有的流出序列流到按照已定 ...
- HBase应用开发回顾与总结系列之二:RowKey行键设计规范
2. RowKey行键设计规范 2.1. RowKey四大特性 2.1.1 字符串类型 虽然行键在HBase中是以byte[]字节数组的形式存储的,但是建议在系统开发过程中将其数据类型设置为Strin ...
- CentOS7安装图形界面和修改运行级别
CentOS7系统如果用mini镜像安装或者服务器版本安装,默认是没有安装图形界面的.如果需要额外去安装图形界面,可以手动来安装CentOS Gnome GUI包.然后会总结一下,在CentOS7系统 ...
- linux添加开机自启动脚本示例详解
linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有 ...