C语言基本数据类型(一)

文章目录

  • 前言

  • 一、int类型

  • 二、八进制和十六进制

  • 三、其他整数类型

  • 四、char 类型

  • 五、_Bool 类型

  • 六、 可移植类型:stdint.h和unttypes.h


前言

C语言基本数据类型包括声明变量、如何表示字面值常量,以及经典的用法。

一、int类型

C语言中包括许多的整数类型,在不同是情况可以选择不懂的数据类型。而且C语言中整数类型可以便是不同的取值范围和正负值。int类型是有符号整型,必须是整数,可以使正整数、负整数或者零。取值访问根据计算机系统来定。一般而言,存储一个int要占据一个机械字长。

1.1 声明int 变量

格式:int + 变量名+分号

int ans;
int gen,cows,gaots;

以上声明是创建的变量,未提供值。其可以直接赋值或者采用函数来赋值。

1.2初始化变量

初始化(initialize)变量就是为变量赋一个初始值。其可以在声明变量时完成。如:

int ans=100;
int cows=10,fla=24

声明为变量创建和标记存储空间,并为其指定初始值。

1.3 int 类型常量

C语言中将不含小数点和指数的数作为整数。

1.4 打印int值

可以采用printf()函数打印int类型的值。%d指明了在一行中打印整数在位置,%d称为转换说明,它指定了prinf()应使用什么格式来显示一个值。

二、八进制和十六进制

2.1引言

8和16是2是幂,其计数系统在表达与计算机相关的值时更加方便。在C语言中,用特定是前缀表示哪种进制。0x或0X前缀表示十六进制。0前缀表示八进制

2.2 显示八进制和十六进制

十进制显示数字,使用%d;

八进制显示数字,使用%o;

十六进制显示数字,使用%x;

显示各进制数的前缀0、0x和0X,必须分别使用%#o、%#x、%#X。其中在八进制和十六进制前显示0和0x前缀,要分别在转换说明中加入#

三、其他整数类型

C语言提供了3个附属关键字修饰基本整数类型:short、long和unsigned.

C语言基本数据类型(一)_第1张图片


 3.1 打印short、long、long long和unsigned类型

打印unsigned int 类型的值,使用%u转换说明;

打印 long 类型的值,使用%ld转换说明。如果系统中int 和long 的大小相同,使用%d转换说明(但是一般可以移植)。

%lx表示十六进制格式打印long类型整数;

%ho表示以八进制格式打印long类型整数。

注意:C语言中允许使用大写或小写的常量后缀,但是在转换说明中只能用小写。

%hd表示以十进制显示short类型的整数;

%ho表示以八进制显示short类型的整数。

h和l 前缀都可以和u一起使用,用于表示无符号类型。

%lu表示打印unsigned long类型的值。

%lld表示有符号类型;

%llu表示无符号类型。

四、char类型

4.1 引言

char类型用于存储字符,从计数层面看,char是整数类型,因为char类型实际上存储的是整数而不是字符,计算机使用数字编码来处理字符,即用特定的 整数表示特定的字符。一般采用ASCII编码。

4.2 char 类型声明变量

char temp;
char ten,ptem;

4.3 字符常量和初始化

在C语言中,用单引号括起来的单个字符被称为字符常量(character constant)

char temp;  //声明一个char类型的变量
temp='a';   //为赋值,正确的赋值
temp=a;     //错误,此时a是一个变量
temp="a";   //错误,此时"a"是一个字符串

字符是以数值形式存储的,故也可以使用数字代码值类赋值

4.4 非打印字符

单引号值适用于字符、数字和标点符号。但是ASCII中有些字符打印不出来,在C语言中提供了3中方法表示这些字符:

方法1:一一使用ASCII码

方法2:使用特殊的符号序列表示一些特殊的字符。这些字符序列叫作转义序列(escape sequence)。把转义序列赋给字符变量时,必须用单引号把转义序列括起来。

转义序列表

C语言基本数据类型(一)_第2张图片

 下面对转义序列进行介绍。

C90新增的警报字符(\a)是否能产生听到或看到的警报,取决于计算机的硬件,蜂鸣是最常见的警报(在一些系统中,警报字符不起作用)。

C标准规定警报字符不得改变活跃位置。标准中的活跃位置(active position)指的是显示设备(屏幕、电传打字机、打印机等)中下一个字符将出现的位置。简而言之,平时常说的屏幕光标位置就是活跃位置。在程序中把警报字符输出在屏幕上的效果是,发出一声蜂鸣,但不会移动屏幕光标。
接下来的

转义字符\b、\f、\n、\r、\t和\v是常用的输出设备控制字符。

换页符(\f)把活跃位置移至下一页的开始处;

换行符(\n)把活跃位置移至下一行的开始处;

回车符(\r)把活跃位置移动到当前行的开始处;

水平制表符(\t)将活跃位置移至下一个水平制表点(通常是第1个、第9个、第17个、第25个等字符位置);

垂直制表符(\v)把活跃位置移至下一个垂直制表点。
其中这些转义序列字符不一定在所有的显示设备上都起作用。例如,换页符和垂直制表符在PC屏幕上会生成奇怪的符号,光标并不会移动。只有将其输出到打印机上时才会产生前面描述的效果。


转义序列(\\、\'、\")用于打印\、'、"字符(由于这些字符用于定义字符常量,是printf()函数的一部分,若直接使用它们会造成混乱)。如果打印下面一行内容:
Gramps sez, "a \ is a backslash."
应这样编写代码:
printf("Gramps sez, \"a \\ is a backslash.\"\n");
最后两个转义序列(\0oo和\xhh)是ASCII码的特殊表示。如果要用八进制ASCII码表示一个字符,可以在编码值前面加一个反斜杠(\)并用单引号括起来。例如,如果编译器不识别警报字符(\a),可以使用ASCII码来代替:
beep = '\007';
可以省略前面的0,'\07'甚至'\7'都可以。即使没有前缀0,编译器在处理这种写法时,仍会解释为八进制。
从C90开始,不仅可以用十进制、八进制形式表示字符常量,C语言还提供了第3种选择——用十六进制形式表示字符常量,即反斜杠后面跟一个x或X,再加上1~3位十六进制数字。例如,Ctrl+P字符的ASCII十六进制码是10(相当于十进制的16),可表示为'\x10'或'\x010'。

C语言基本数据类型(一)_第3张图片

int系列类型的常量写法实例

 五、_Bool类型

_Bool 类型用于便是布尔值,即逻辑值true和false.在C语言中用1表示true,用0表示false,所以_Bool类型实际上也是一种整数类型,但原则上仅占用1位存储空间,

六、可移植类型:stdint.h和unttypes.h

可移植类型:stdint.h和unttypes.h是为了确保C语言的类型在各系统中功能相同。

int32_t表示32位的有符号整数类型;

int_least8_t是可容纳8位有符号整数值的类型中宽度最小的类型的一本别名;

int_fast8_t被定义为系统中对8位有符号值而言运算最快是整数类型的别名;

intmax_t表示最大有符号整数值。

/* altnames.c -- 可移植整数类型名 */
#include 
#include  // 支持可移植类型
int main(void)
{
     int32_t me32;     // me32是一个32位有符号整型变量

     me32 = 45933945;
     printf("First, assume int32_t is int: ");
     printf("me32 = %d\n", me32);
     printf("Next, let's not make any assumptions.\n");
     printf("Instead, use a \"macro\" from inttypes.h: ");
     printf("me32 = %" PRId32 "\n", me32);

     return 0;
}

你可能感兴趣的:(C语言基础知识,pandas,c语言)