C语言 ,数据,数据类型,总结大全。

数据

变量和常量数据

数据类型

数据类型关键字

intlongshortunsigned
charfloatdoublesigned
void_Bool_Complex_Imaginary

按计算机的存储方式可分为两大基本类型 :整数类型和浮点数类型

一下有几点说明

  1. char 类型是整数类型,因为char类型实际上存储的是整数而不是字符。
  2. 描述计算机数据单元或存储单元的术语
    (1)位,最小的存储单元,可以存储0或者1,是计算机内存的基本构建方式
    (2)字节,是常用的计算机存储单位,1字节均为8位
    (3)字,是设计计算机时给定的自然数存储单位

如果数据是常量,编译器一般通过用户书写形式来识别类型

  1. 如果常量是的整数,一般会被认为是int 类型,但是也会根据整数的大小来依次增大
int
unsigned
long
unsigned long
long long
unsigned long long
  1. 如果常量是浮点数,默认情况下,编译器假定浮点型常量是double类型
  2. 如果是字符,就是char 类型

如果数据是变量,这就要在声明时指定其类型

整型

整型的存储方式

计算机以二进制数字存储整数

常见的整数类型

int
short(short int)
long(long int)
long long(long long int)
unsigned(unsigned int)

int类型 ()

  1. 系统给定基本整数类型,int的取值范围最小为-32768~32768,C语言规定int类型不小于16位
  2. int类型的声明,赋值初始化。
int erns;		
int hogs,cows,goats;		//声明
cows = 112;
scanf("%d",erns)				//赋值
int hogs = 21;
int cows = 32.goats = 14;
Int dogs,cats = 94; /*有效,但是这种格式很糟糕*/		//初始化变量
  1. 打印 int值,用%d
  2. 可以写成八进制或十六进制,但不会影响被储存的方式

其他整数类型

short

short int 类型,最大的short类型整数小于或等于最大的int 类型整数,C语言规定至少占16位

long

long int类型,该类型可表示的整数大于等于最大的int类型整数,C语言规定至少占32位

long long

long long int 类型,该类型可以表示的整数大于等于最大的long类型整数,C语言规定至少占64位

无符号整型

无符号整型可表示的正整数比有符号整型的大

打印
shortlonglong longunsigned
%hd%ld%lld%u

char 类型

  1. char 类型用于储存字符,但从技术层面看,char是整数类型,因为char类型实际存储的是整数而不是字符
  2. 计算机通常用ASCII编码表示特定字符
  3. 标准ASCII码的范围是0~127 ,只需要7位二进制数即可表示,通常,char类型被定义为8位的存储单元
  4. char类型的声明,字符常量,和初始化。
 char response;
 char itable.latan;				//声明
 
 char grade = 'A' ;			//正确赋值    字符用单引号括起来
 
 char grade = A ;				//错误
 char grade = "A" ;			//错误
 
char grade = 65 ;				//可以但是是不好的编程风格
  1. 非打印字符
    有些字符打印不出来,例如,一些代表行为的字符(如,退格,换行有,终端响铃或蜂鸣)
    提供两种表示方法:
    (1)char beep = 7; //蜂鸣字符的ASCII值是7;
    char beep = ‘\007’; 八进制表示
    cahr beep = ‘\x10’或’\X010’; 十六进制表示
    (2) .使用特殊的符号序列表示一些特殊的字符。这些符号序列叫做转义序列
转义序列含义
\a警报
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\\反斜杠
单引号
"双引号
?问号
\0oo八进制值
\xhh十六进制值

写法:

char = '\n';

注意:使用ASCII码时,注意数字和数字字符的区别。例如,字符4对应的ASCII码是52.'4’表示字符4,而不是数值4.
6. %c 是char 类型的转换字符
7. 有符号和无符号
有些c编译器把char实现为有符号的,可表示的范围是-128~127,也有些C编译器把char实现为无符号类型,可表示的范围是0 ~255.

—Bool类型

c语言用值1表示true,值0表示false,也是一种整数类型,原则上占用1位储存空间
C99提供了stdbool.h头文件,该文件让bool成为—Bool的别名,而且还把true和false分别定义为1和0的符号常量

浮点型

浮点型的存储方式

  1. 计算机把浮点数分为小数部分和指数部分来表示,而且分开存储这两部分。
    例如 7.00和7在数值上相同,但是它们的存储方式不同
  2. 浮点数通常只是实际值的近似值

浮点型的基本类型

  1. float
    可精确表示至少六位有效数字
  2. double
    能表示比float类型更多的有效数字(至少10位)和更大的指数
  3. long double
    能表示比double类型更多的有效数字和更大的指数

浮点型的三种表示方法

数字科学记数法指数记数法
10000000001.0 * 10 91.0e9
1230001.23 * 1051.23e5
322.563.2256 * 1023.2256e2
0.0000565.6 * 10-55.6e-5

浮点型变量的声明

float noah,jonah;
double trouble;
float planck = 6.63e-34;     //初始化
long doublegnp;

浮点型常量

  1. 浮点型常量的基本形式的是:有符号的数字(包括小数点),后面紧跟e或E,最后是一个有符号数表示10的指数。
    例如: -1.56E+12,2.87e-3
  2. 正号可以省略
  3. 可以没有小数点或指数部分,但两者不能同时省略
  4. 可以省略小数部分或者整数部分,但是两者不能同时省略
  5. 默认情况下编译器会把浮点型常量假定为double类型 //运算速度较慢,运算精度较高
  6. 可以在后面加上F或f,编译器会把浮点型常量看成float类型,例如:2.3发,9.11E9F //运算速度较快
  7. 可以在后面加上l或L,编译器会把浮点型常量看成long double类型
  8. C99添加了一种新的浮点型常量,即在十六进制数前面加上十六进制前缀(0X,0x),用P和p分别代替e和E,用2的幂代替10的幂 例如;0xa.1fp10(十进制 10364.0)

打印浮点值

转换说明浮点数类型
%ffloat
%fdouble
%e打印指数计数法的浮点数
%a,%A可以打印十六进制的浮点数
%lflong double
%lelong double类型的指数
%lalongdouble类型的十六进制浮点数

printf() ,传递参数时,C编译器会把float类型的值自动转换成double类型

浮点值的上溢和下溢

上溢:当计算导致数字过大,超过当前类型能表达的范围时,就会发生上溢,C语言规定,在这种情况下,会给toobig赋一个表示无穷大的特定值,而且printf(),显示该值为inf或infinity
下溢:简单的来说就是计算过程中,损失了原末尾有效位上的是数字。(说的有点不具体)

类型大小

sizeof

sizeof是c语言的内置运算符,以字节为单位给出指定类型和变量的大小,%zd或者%u或者%lu匹配sizeof的返回类型

int a;

sizeof(int)     			//返回类型大小必须用括号括起来

sizeof a					//返回变量类型的大小 可以不用括号括起来

几点注意:

  1. 正确使用数据类型,特别是在初始化,赋值,打印时一定注意。
  2. printf时,要保证转换说明的数量,类型,与后面参数的数量,类型相匹配。
  3. 在打印时,用错转换说明,有些也是可以正常运行的,但是用%d,显示浮点数(float,double,long double),其值不会被转换成int类型。

这是小编第一次总结c语言的知识,后续还会更新
如果有错的地方,可以及时给我指出来,谢谢!
不喜勿喷
感谢大家观看!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值