2.1 常量与变量
2.1.1 关键字
2.1.2 数据类型
数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
2.1.3 常量
常量:
- 在程序运行过程中,其值不能被改变的量
- 常量一般出现在表达式或赋值语句中
整型常量 |
100,200,-100,0 |
实型常量 |
3.14 , 0.125,-3.123 |
字符型常量 |
‘a’,‘b’,‘1’,‘\n’ |
字符串常量 |
“a”,“ab”,“12356” |
2.1.4 变量
1) 变量
变量:
- 在程序运行过程中,其值可以改变
- 变量在使用前必须先定义,定义变量前必须有相应的数据类型
标识符命名规则:
- 标识符不能是关键字
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须为字母或下划线
- 标识符中字母区分大小写
变量特点:
- 变量在编译时为其分配相应的内存空间
- 可以通过其名字和地址访问相应内存
2) 声明和定义区别
- 声明变量不需要建立存储空间;
- 定义变量需要建立存储空间。
一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。
2.1.5 使用示例
#include <stdio.h>
#define MAX 10 //声明了一个常量,名字叫MAX,值是10,常量的值一旦初始化不可改
int main()
{
int a; //定义了一个变量,其类型为int,名字叫a
const int b = 10; //定义一个const常量,名为叫b,值为10
//b = 11; //err,常量的值不能改变
//MAX = 100; //err,常量的值不能改变
a = MAX; //将abc的值设置为MAX的值
a = 123;
printf("%d\n", a); //打印变量a的值
return 0;
}
2.2整型:int
2.2.1 整型变量的定义和输出
打印格式 |
含义 |
%d |
输出一个有符号的10进制int类型 |
%o |
输出8进制的int类型 |
%x |
输出16进制的int类型,字母以小写输出 |
%X |
输出16进制的int类型,字母以大写输出 |
%u |
输出一个10进制的无符号数 |
2.2.2 整型变量的输入
#include <stdio.h>
int main()
{
int a;
printf("请输入a的值:");
scanf("%d", &a); //输入a的值
printf("a = %d\n", a); //打印a的值
return 0;
}
2.2.3 short、int、long、long long所占字节数
数据类型 |
占用空间 |
short(短整型) |
2字节 |
int(整型) |
4字节 |
long(长整形) |
Windows为4字节,Linux为4字节(32位),8字节(64位) |
long long(长长整形) |
8字节 |
打印格式 |
含义 |
%d |
输出int类型 |
%ld |
输出long类型 |
%lld |
输出long long类型 |
2.2.4 有符号数和无符号数区别
1) 有符号数
有符号数是最高位为符号位,0代表正数,1代表负数。
2) 无符号数
无符号数最高位不是符号位,而就是数的一部分,无符号数是非负数。
3) 有符号和无符号整型取值范围
数据类型 |
占用空间 |
取值范围 |
short |
2字节 |
-32768 到 32767 (-215 ~ 215-1) |
int |
4字节 |
-2147483648 到 2147483647 (-231 ~ 231-1) |
long |
4字节 |
-2147483648 到 2147483647 (-231 ~ 231-1) |
unsigned short |
2字节 |
0 到 65535 (0 ~ 216-1) |
unsigned int |
4字节 |
0 到 4294967295 (0 ~ 232-1) |
unsigned long |
4字节 |
0 到 4294967295 (0 ~ 232-1) |
2.3 sizeof关键字
- sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节
- sizeof的返回值为size_t
- size_t类型在32位操作系统下是unsigned int,是一个无符号的整数
#include <stdio.h>
int main()
{
int a;
int b = sizeof(a); //sizeof得到指定值占用内存的大小,单位:字节
printf("b = %d\n", b);
return 0;
}
2.4字符型:char
2.4.1 字符变量的定义和输出
字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来。字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。
#include <stdio.h>
int main()
{
char A = 'A';
char a = 'a';
printf("a = %d\n", a); //97
printf("A = %d\n", A); //65
printf("A = %c\n", 'a' - 32); //小写a转大写A
printf("a = %c\n", 'A' + 32); //大写A转小写a
return 0;
}
2.4.2 字符变量的输入
#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
printf("ch = %c\n", ch); //打印ch的字符
return 0;
}
2.4.2 ASCII对照表
ASCII值 |
控制字符 |
ASCII值 |
字符 |
ASCII值 < |