zoukankan      html  css  js  c++  java
  • [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为无符号短整型。以此类推。

  • 相关阅读:
    Generate Parentheses
    Length of Last Word
    Maximum Subarray
    Count and Say
    二分搜索算法
    Search Insert Position
    Implement strStr()
    Remove Element
    Remove Duplicates from Sorted Array
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/AI-Algorithms/p/3812992.html
Copyright © 2011-2022 走看看