当前位置 博文首页 > CW_qian的博客:7月16日笔记C语言基础数据类型
1. 整型
int?a = 123; // 定义了一个专门用来存储整数的变量a
short?int?a; // 短整型
long?int?b; ?// 长整型
long?long?int?c; // 长长整型
unsigned?int?e; ?// 无符号整型
unsigned?short?int?f; // 无符号短整型
unsigned?long?int?g; ?// 无符号长整型
unsigned?long?long?int?h; // 无符号长长整型
short?a; // 短整型
long?b; ?// 长整型
long?long?c; // 长长整型
unsigned?e; ?// 无符号整型
unsigned?short?f; // 无符号短整型
unsigned?long?g; ?// 无符号长整型
unsigned?long?long?h; // 无符号长长整型
2. 浮点型
float?f1?= 3.1415926; // 单精度
Printf(“%.3f\n”,f1); // 3.142 ,四舍五入
double?f2; // 双精度
long?double?f3; // 长双精度
浮点类型 | 最小精度 | 最大数值 |
float | 10^{-37}10?37 | 10^{38}1038 |
double | 10^{-307}10?307 | 10^{308}10308 |
long double | 10^{-4931}10?4931 | 10^{4932}104932 |
3. 字符?字符是用’’单引号描述
char?ch1 = 'a'; ?// 'a'是字符常量,代表字母a
char?ch2 = '\n'; // '\n'是不可见字符常量,代表回车
计算机中存储的都是1和0,因此各种字符都必须被映射为某个数字才能存储到计算机中,这种映射关系形成的表称为 ASCII 码表。
字符本质上就是一个单字节的整型,支持整型所有的运算。比如:
char?c1 = 20;
char?c2 = c1 + 'a'; // 等价于 char c2 = 20 + 97;
printf("%c\n", c2); // 以字符形式输出117,即 'u'
printf("%d\n", c2); // 以整型形式输出117
4. 字符串??字符串是用双引号
// 字符串的定义方式有两种:指针和数组
char?*s1 = "abcd"; // 使用字符指针来表示字符串
char?s2[]= "abcd"; // 使用字符数组来表示字符串
注意:所有类型(char * || int*||float *||double *)的指针在32位系统都是占用4字节,在64位系统是占用8字节
// 注意,使用数组来定义字符串时,方括号[]里面的数字可以省略
// 不省略也可以,但必须必字符串实际占用的内存字节数要大,比如:
char?s3[] = "apple";
5. 布尔型数据
头文件:#include <stdbool.h>
bool?a = 1; // 逻辑真,此处1可以取其他任何非零数值
bool?b = 0; // 逻辑假
6. 常量与变量
int?a = 100; ???// a是变量,而100是常量
float?f = 3.14; // f是变量,而3.14是常量
char?s[] = "abcd"; // s是变量,"abcd"是常量
常量举例 | 说明 | 类型 |
100 | 整型 | int |
100L | 长整型 | long |
100LL | 长长整型 | long long |
100ULL | 无符号长长整型 | unsigned long long |
3.14 | 双精度浮点型 | double |
3.14L | 长双精度浮点型 | long double |
‘a’ | 字符型 | char |
“abcd” | 字符指针(字符串) | char * |
7. 标准输入
man -f scanf
man 3 scanf
scanf(); // 格式化输入函数
fgets(); // 字符串输入函数
int?a;
float?f;
scanf("%d", &a); ??// 从键盘输入一个整型,放入指定的内存地址 &a 中
scanf("%f", &f); ??// 从键盘输入一个浮点数,放入指定的内存地址 &f 中
scanf("%d%f", &a, &f); // 从键盘依次输入一个整型和一个浮点型数据,用空白符隔开
char?c;
char?s[10];
scanf("%c", &c); ?// 从键盘输入一个字符,放入指定的内存地址 &f 中
scanf("%s", s ); ?// 从键盘输入一个单词,放入指定的数组 s 中(注意不是&s)
fgets(s, 10, stdin); // 从键盘输入一行字符串,放入数组 s 中
// 此处输入时必须带逗号
scanf("%d,%d", &a, &b);
// 此处必须先输入a=,然后才能输入整数
scanf("a=%d", &a);