C语言笔记系列--基本数据类型
Posted xiong_hui_hui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言笔记系列--基本数据类型相关的知识,希望对你有一定的参考价值。
1. 数据类型
- 计算机存储单位:
- 位:计算机存储的基本单位
- 字节:几乎对所有机器1字节=8位,C把一个字节定义为char类型使用的位数。
- 字:自然的存储单位,不同计算机一个字有不同位数,现在很多都是32位或64位。
- 整数类型:使用二进制编码存储
short,int,long我们一般使用的short是2字节,int和long是4字节,long long就是8字节。使用关键字sizeof(int)能计算int字节大小,其他类型也可使用。
如short,signed short int的缩写,取值范围为-32768~32767
usigned short的取值范围为0~65535。
%d,%0,%x分别显示十进制,八进制,十六进制的数。
%d,%#o,%#x,%#X分别显示如上,并在前还显示C语言前缀。
int x=100;
printf("%d; %#o; %#x; %#X",x,x,x,x);
输出为:100;0144;0x64;0X64
3. 浮点数类型:使用二进制浮点格式存储
符号 小数部分 指数部分
+ .31415 1 = 3.1415(十进制版本)
float,double,long double
printf:%f %e %a
上溢:inf,infinity
浮点数有舍入误差,float只有6、7为有效数字,如3.1415926,double至少能表示10位有效数字,但他们取值范围相同。
4. char类型
最小的整数类型,最常用的编码为ASCII,8位足够表示。不同编译器表可能指示有符号或无符号,除非自己明确写出关键字。
字符有以下六种方法表示:
char c1='A';
char c2=65; 0101; 0x41;
char c3='\\101'; '\\x41';
非打印字符:
\\ 转义字符
\\a发出警报声
\\n换行
\\t制表符,一般是第九列
\\r 回车,光标回到当前行起始位置
\\b退格,通常退格时不删除退回经过的字符
\\ddd三位八进制值
\\xhh 二位十六进制值
字符串:
存储于char数组,数组由相邻存储单元组成,每个字符占用一个单元,\\0为终止符,非打印字符,ASCII值为0。
char name[num];
strlen()函数:以字符为单位给出字符串的长度。
使用scanf:遇到空白字符,制表符,换行都终止读取。读取一个单词
gets:处理一般字符串
5. _Bool类型
true为1
false为0
6. 可移植类型:inttypes.h
因为前面所给的类型对于位数定义都不明确,除非查看系统文档,所以引入此头文件。
如int16_t 表示16位有符号整数类型
uint32_t 表示32位无符号整数类型
int_least8_t 表示可容纳8位有符号数的长度最小的整数类型的别名
int_fast8_t 表示对8为有符号数而言最快的整数类型的别名
intmax_t 表示最大的有符号整数类型
printf使用%hd或%“PRID num ”
7. 复数和虚数
三种复数类型float_Complex,double_Complex,long double_Complex
若包含头文件complex.h则可以用complex代替_Complex
虚数同理
8. 类型转换
* 当出现于表达式里,所有比int小的都要转换为int执行(如果short与int一样大,那么unsigned short就转为unsigned int)
* 包含两种数据类型的运算,两个值都转为高级别的,赋值时值为赋予的变量的类型。(无符号高于有符号)。
* 当作为函参被传递时,char和short会被转换为int,float转换为double
* 若是降级,使用显示转换。如int n;n=(int)1.6+(int)1.6;
以上是关于C语言笔记系列--基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章
《从零开始学Swift》学习笔记(Day 71)——Swift与C/C++混合编程之数据类型映射