暂时无法在飞书文档外展示此内容
1、C 实例 – 成绩录入
#include <stdio.h> //头文件
//空白行
/* 我们的第二个 C 程序 */ //注释
int main() //main 函数
{ //函数体开始
int score = 0; //变量
printf("请输入成绩:"); //输出语句
scanf("%d", &score); //输入语句
printf("成绩是:%d\n", score); //输出语句
return 0; //结束并返回语句
} //函数体结束
1.1、C 实例 – 成绩录入中的数据类型
数据类型 + 变量/函数
int main() //main 函数
int score = 0; //变量
2、数据类型定义
在 C 语言中,数据类型
指的是用于声明不同类型的变量或函数
。变量的类型
决定了变量存储占用的空间
,以及如何解释存储的位模式。
C 中的数据类型可分为以下几种:
每种数据类型都有变量和常量。
其中 C 语言的基本数据类型
大体有三种:整型(整数)、实型(小数/浮点数)、字符型。
3、基本数据类型
下表列出了关于基本数据类型
的存储大小和值范围的细节:
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647(某些16位单片机是2字节) |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295(某些16位单片机是2字节) |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
注意,各种类型的存储大小与系统位数有关,但目前通用的以 64 位系统为主。
以下列出了 32 位系统与 64 位系统的存储大小的差别(windows 相同):
3.1、类型修饰符
因为数据是有正、负之分的,C 语⾔引⼊ signed
和 unsigned
关键字来修饰 char 、short 、int 、long 等整型家族的类型,用于补充说明变量的特性。
- 整型都默认为是有符号型(
signed
); - 有符号型即可以是
正数、负数和 0
; - 也可以根据需要,将整型指定为无符号型(
unsigned
),此时整型变量只能存放非负数
;
3.2、整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
//更⻓的整型 -- C99中引⼊
long long [int]
[signed] long long [int]
unsigned long long [int]
3.3、浮点型
//单精度
float
//双精度
double
//长双精度
long double
3.4、字符型
char
//有符号和无符号字符
[signed] char
unsigned char
3.5、布尔型
- 在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。
- 布尔类型变量的取值是:true 或者 false。
_Bool 依然仍是整数类型,但与一般整型不同的是,_Bool 变量只能赋值为 0 或 1,非 0 的值都会被存储为 1。
C99 提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。
只要导入 stdbool.h ,就能非常方便的操作布尔类型了。
bool
4、sizeof 运算符
为了得到某个类型或某个变量在特定平台上的准确大小
,您可以使用 sizeof
运算符。
- sizeof 是个单目运算符,也是⼀个关键字,用来计算操作数在内存中占据的字节数。
- 表达式 sizeof(type) 不仅仅可以计算内置的类型的大小,计算数组、⾃定义类型的大小都是可以的。
4.1、sizeof 的返回类型
用⼀个类型别名 size_t
,用来统一表示 sizeof 的返回值类型
,可能是 unsigned int,也可能是 unsigned long。不管 sizeof 返回值的类型是什么,%zd 占位符(或 %zu )
都可以正确输出。
4.2、程序实例
下面的实例演示了 sizeof 获取 各个类型
的 字节大小
:
#include <stdio.h>
int main()
{
int a = 20;
printf("%zd\n", sizeof(char)); //1
printf("%zd\n", sizeof(int)); //4
printf("%zd\n", sizeof(a)); //4
printf("%zd\n", sizeof a); //4
printf("%zd\n", sizeof(3.14)); //8
printf("%zd\n", sizeof(3.14f)); //4
return 0;
}
说明:
字符类型的
整型类型是 1 个字节整型类型的变量
是 4 个字节,整型类型
也是 4 个字节- sizeof 的括号中如果给的不是类型的话,括号可以省略的
- 3.14 被编译器识别为 double 类型,所以大小是 8 个字节
- 3.14f 因为在 3.14 的后边加了 f ,会被编译器识别为 flaot 类型,是 4 个字节
注意:
如果你想将一个浮点数定义为 float 类型,需要在数值后加上 f 或 F,否则编译器会默认将其视为 double 类型。
5、接下来
讲了这么多数据类型,那数据类型是用来做什么的呢?
数据类型是用来创建变量的
,(7)变量小节会讲变量。
每日一更!
公众号、CSDN等博客:小菜狗编程笔记
谢谢点赞关注哈!目前在飞书持续优化更新~
日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!