C语言中的数据类型
常量与变量
在C语言中的表现形式是常量与变量。
常量
常量:在程序执行过程当中其值不能改变的量称之为常量。
1.数值常量
整数常量
- 二进制常量:以0b开头,由0,1两个数字构成
举例: 0b1111、0b0110、0b01110101
- 八进制常量:以0开头,由0~7八个数字构成
举例: 012345、07654 -075
- 十进制常量:默认,由0~9共十个数字构成
举例: 1234、9876、-87654
- 十六进制常量:以0x开头,由0~9,A-F共16个字符构成,一般用于嵌入式开发
举例: 0xFFFFFF、0xFFFF00
小数常量
- 单精度:常常给单精度的数值后加F作为标记
举例: 12.24F、-45.4444F
- 双精度:默认就是双精度
举例: 12.24、-45.4444
2.字符常量
用单引号 ‘’ 引起来的单个字符
举例: ‘a’ ‘1’
注意: ‘a’ -字符, ‘马’ -错误
转义符:
‘\n’ :换行符
‘\t’ :制表符
‘\’ :反斜线, \
‘\0’ :0字符对应的ASCII码值是0
3.符号常量
使用 #define 定义的宏
举例:定义- #define PI 3.1415926 定义 π,使用- 2 * PI
4.字符串常量
使用 “…” 引起来的字符序列,称之为字符串常量
注意:C语言常量是支持字符串的,C语言变量不支持字符串(需要字符数组或者字符指针进行模拟)
举例: printf(“Hello World!”)、printf(“”)、printf(1)-数值常量、printf(“1”)-字符串常量
5.空常量
用于给指针变量作为默认值初始化:int *p = NULL;
注意: * 前面是常量或者变量,此时 * 是数学运算符乘号, * 前面是数据类型,此时 * 表示指针。
补充
长整型一般在数值后加 L 或者 l ;长长整型一般在数值后加 LL 或者 ll。
long a=90L;
long long b=99LL;
练习题
#include <stdio.h>
/**
* 入口函数
*/
int main()
{
int num = 12;
num = 13;
printf(num); // 13 输出变量
printf("num"); // num 字符串常量,这个常量是隐式创建
printf(1); // 1 数值常量,这个常量是隐式创建
printf("%d",90L); // 90 数值常量
C语言中有3类标识符
-
关键字
有32个,系统有特定的含义和用途,如:float、double、int、long、char、if、else、auto、break、case、const、continue、default、do、enum、extern、for、goto、if、register、return、signed、unsigned、sizeof、static、struct、switch、typedef、union、void、volatile、while,不能用作变量名。
-
系统预定义的标识符
如系统提供的库函数名sin、printf、main及预编译命令define、include、endif、elif、error、line、ifdef、ifndef、pragma、undef、if、else。
-
用户标识符
用户定义的标识符,用来给程序中的变量、自定义函数、符号常量、数组、结构体、共用体、文件等命名。
扩展
常见的字符编码
-
ASCII:1个字符等于1个字节,总共256个字符,针对程序内部
-
GBK:1个字符等于2个字节,表示简体、繁体及其符号。“。表示: \xced2
-
Unicode:四个字节表示:全球统一编码,囊括了全世界所有的字符。表示: \u6211
-
UTF-8:长度变化的字符集,是对Unicode字符集的优化,提高效率,表示: \xe68891
-
ISO-8859-1:这个是西欧语言字符集
如果代码中有字符乱码 — 编码和解码的字符集不一致
解决方案:
- 修改成一致的编码
8:长度变化的字符集,是对Unicode字符集的优化,提高效率,表示: \xe68891
- ISO-8859-1:这个是西欧语言字符集
如果代码中有字符乱码 — 编码和解码的字符集不一致
解决方案:
- 修改成一致的编码
- 换成英文或者数字,毕竟只有中文才会乱码