C语言的基本数据类型和存储类

简介: C中的整常数有三种表示形式:进制整数、八进制整数和十六进制整数十进制数:最高位非零;八进制数:以数字零开头;十六进制:以数字零和字母x开头,a-不区分大小写

1.1 整型数据

1.1.1整形常量


C中的整常数有三种表示形式:进制整数、八进制整数和十六进制整数

十进制数:最高位非零;八进制数:以数字零开头;十六进制:以数字零和字母x开头,a-不区分大小写


1.1.2 整型变量


C中的整型变量分为有符号和无符号两种

有符号整型变量细分为标准整型(int)、短整型(short)、长整型(long),值可正可负

无符号整型变量也可分为标准整型(unsigned int)、短整型(unsignedshort)长整型(unsigned long),其值不能为负

表示范围不同:short(2个字节)<=int(2个字节)<=long(4 个字节)

16位的有符号整数能表示的数的有效范围:-215~25-1=-32768~32767


1.1.3整型数据的存储表示


正整数:以原码形式存放在内存中,字长为16 时,整数范围取0-32767负整数:以补码形式存放在内存中

-5 的补码:16位0/1 代码的模10000000000000000(16个零)模-101(5)(1000000000000000)₂=(-32768)10(11111)=()1


1.2 字符型数据


1.2.1字符型常量


字符型常量是由一对单引号括起来的单个字符(可打印)

一个转义序列是一个反斜线后跟特定的字符,表示某些不可打印的字符(n换行符\t水平制表符\b退格符\r回车符I反斜线符10空字符\ddd位型ddd是1至3位八进制数字loxff位型ff是1至2位十六进制数字)ASCII码八位



1.2.2字符型变量char cl.c2;


每个字符型变量可存放一个字符


1.2.3字符型数据的存储表示


字符数据在计算机内部是以一个字节的二进制形式表示(ASCII码)

+printf:参数可以有多个,但第一个参数必须是字符串,称为格式串(format-string)

printf首先对格式串从左到右扫描,当遇到可显示字符时就在终端上原样输出,当遇到控制字符(如n响铃符等)就产生相应的动作(换行,响铃等),当遇到转换字符时,就将后面的实参依次按转换符的要求转换并输出,常用的转换符有:%d十进制整型、%c字符型、%f浮点型、%s 字符串型

C编译系统将字符型数据当成有符号整型还是无符号整型没有规定


将字符串“12345”转换成12345'1'0=15-0=5


1.2.4 字符串常量


字符串常量是用一对双引号括起来的零个或多个字符序列


。“”只充当字符串的分界符,而不是字符串的一部分;如果要在字符串中出现双引号,则必须经过转义序列,如The“a”is an indefart写成字符串为:“The \42a\42 is an indef art”字符串中所含的字符个数称为字符串的长度;字符串所占的空间为长度+1,增加的一个字节存放字符串的结尾标志'10例:字符串“10mn”的长度=0

·转义序列也可出现在字符串中,但只作为一个字符看待


1.3浮点型数据


1.3.1浮点型常量


浮点型常量有非指数型和指数型两种;指数型:e(E)之前必须有数字,之后的指数必须为整数,且不能插入空格!



1.3.2浮点型变量


浮点型变量通过保留字float来说明


1.3.3浮点型数据的存储表示

表示:二进制的浮点形式

任何一个二进制实数总可以表示成:N=Sx2°其中:pS都是有符号二进制整数,p称为阶码(8位),S称为尾数(24位),S中无小数点或小数点约定为在最前头。

p的字长为nl,S的字长为n2,则有-2"≤p≤2"--1-2"2≤S≤22-1-1,则一个实数的字长为:n1+n2

令n2=24,n1=8,则N=Sx2的取值范围是2-1≤N≤2约为103≤N≤103,N的

精度为7位有效数字。


1.4双精度型数据


字长比浮点型多一倍,一般占用8个字节;精度大约为17位有效数字,浮点型为7位精度。双精度型变量是由保留字double来说明的



1.5变量的初始化


1.6变量的存储类


变量的两个属性:存在性和可见性


存在性:是指变量都具有一个数据类型并以一定的方式存于内存之中可见性:是指在其作用域中是可见的(活动的),出了作用域就不可见了


变量的作用域:是指变量有定义的程序部分

变量的以上两个属性是由以下四个变量存储类决定的:

自动的(auto)静态的(static)寄存器(register) 外部的(extern)



1.6.1 自动变量


由保留字auto说明或定义的变量(autointa),auto可省略不写


自动变量是局部变量,其作用域局限于其所在的函数或块


自动变量每进入一次函数体,就赋一次指定的初值



1.6.2寄存器变量(register)


寄存器变量的用法和作用域规定与自动变量相同


寄存器变量无地址,无法对其进行求地址运算

器存器变量说明应尽量靠近其使用的地方,用完后尽快释放


相关文章
|
1月前
|
存储 程序员 C语言
深入探讨C语言中的字符型数据类型及其应用
深入探讨C语言中的字符型数据类型及其应用
14 0
|
6天前
|
存储 C语言
C语言动态存储方式与静态存储方式
C语言动态存储方式与静态存储方式
7 0
|
19天前
|
存储 编译器 C语言
爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)
爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)
|
1月前
|
存储 编译器 程序员
【C语言】整形数据和浮点型数据在内存中的存储
【C语言】整形数据和浮点型数据在内存中的存储
16 0
|
1月前
|
存储 编译器 C语言
C语言3🔥:常用的数据类型
C语言3🔥:常用的数据类型
15 0
|
1月前
|
Java C语言 C++
C语言由入门到精通(1)介绍与数据类型
C语言由入门到精通(1)介绍与数据类型
|
1月前
|
存储 人工智能 小程序
C语言第二十八弹---整数在内存中的存储
C语言第二十八弹---整数在内存中的存储
|
1月前
|
存储 安全 编译器
【C/C++ 基本数据类型】C++ 基本数据类型深度解析与C语言对比
【C/C++ 基本数据类型】C++ 基本数据类型深度解析与C语言对比
59 0
|
1月前
|
程序员 C语言
在C语言中,typedef是一种用来创建新的数据类型名的关键字
在C语言中,typedef是一种用来创建新的数据类型名的关键字
9 0
|
1月前
|
存储 程序员 C语言
探索C语言中的浮点型数据类型及其应用
探索C语言中的浮点型数据类型及其应用
19 0