写在前头
本人今年大四毕业,电气自动化,准备二战考研,以后想从事嵌入式方向。目前还不忙,跟着b站up主学习一下C语言。up说要养成记录的习惯,也能够帮我理清思路。希望我能有毅力记录下去(就像这篇文章写的内容其实是昨天看的,纠结过后决定记录一下)。本文章内容来自课件。
本章重点
- 什么是C语言
- 第一个C语言程序
- 数据类型
- 变量、常量
1 什么是C语言?
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要运行环境支持便能运行的编程语言,具有良好的跨平台性,是一门面向过程的计算机编程语言。目前C语言的最新标准是C11,更好地支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。本次学习用的编译器是MSVC。
2 第一个C语言程序
#include <stdio.h>
int main()//main函数是程序的入口
{
printf("hello world!\n");//\n表示换行
printf("he he\n");
return 0;
}
3 数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
long double //扩展精度浮点
- 为什么出现这么多类型?
- 每种类型的大小是多少?
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));//sizeof能够读取数据类型所占的字节
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
return 0;
}
运行结果如下图
char字符数据类型占1个字节,以此类推。bit→比特位,是计算机中最小的单位,表示为一个二进制。byte→字节,1byte = 8bit,即1个字节由8个二进制表示。
常用的单位还有1KB=1024byte,1MB=1024KB, 1GB=1024MB, 1TB=1024GB, 1PB=1024TB
4 变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型)
有些值是可变的(比如:年龄,体重,薪资)
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
4.1 定义变量的方法
int age = 50;
float weight = 45.5f;
char ch = 'w';
//float是关键词,表单精度浮点数
//weight是变量名称,表体重
//45.5是数值,表体重
//f是当float有风险时加的
4.2 变量的命名
- 只能由字母(包括大写和小写)、数字和下划线( _)组成。不能以数字开头
- 长度不能超过63个字符
- 变量名中区分大小写的
- 变量名不能使用关键字
4.3 变量的分类
- 局部变量
- 全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
//下面定义的global会不会有问题?
int global = 2020;//局部变量
printf("global = %d\n", global);
return 0;
}
总结:上面的局部变量global变量的定义其实没有什么问题,当局部变量和全局变量同名的时候,局部变量优先使用。
4.4 变量的使用
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");//printf输出
scanf("%d %d", &num1, &num2);//scanf输入
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
4.5 变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围
- 全局变量的作用域是整个工程
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
4.6 常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
#include <stdio.h>
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const 修饰的常变量
const float pai = 3.14f;//这里的pai是const修饰的常变量
pai = 5.14;//是不能直接修改的!
//#define的标识符常量 演示
#define MAX 100
printf("max = %d\n", MAX);
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE)
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
注:上面例子上的 pai被称为 const修饰的常变量, const修饰的常变量在C语言中只是在语法层面限制了变量 pai不能直接被改变,但是 pai本质上还是一个变量的,所以叫常变量,即:是一个变量,但具有常属性。