🔥博客主页:小王又困了
📚系列专栏:C语言
🌟人之为学,不日近则日退
❤️感谢大家点赞👍收藏⭐评论✍️
目录
一、什么是C语言
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
计算机语言是实现人与计算机的交流
C语言更擅长底层开发,对操作系统及以下软件的开发
二、第一个C语言程序
写代码要先创建一个项目,然后创建.c文件
.c--C语言
.cpp--C++
注意:写.cpp会按照C++的语法编译
C语言有两种文件
.h header 头文件
.c 源文件
#include <stdio.h>
//这是头文件
int main()
//main函数是程序的入口,程序从main函数的第一行开始执行
//一个工程中main(主)函数有且只有一个
{
printf("hellow word\n");
//printf是一个库函数,在使用时要引用头文件
return 0;
}
三、数据类型
char 字符数据类型 |
short 短整型 |
int 整形 |
long 长整型 |
long long 更长整型 |
float 单精度浮点型 |
double 双精度浮点型 |
1字节(Byte)=8比特位(bit)
sizeof 在C语言中用来计算变量或者使用类型创建变量的大小
类型的使用
char ch='w'
int age=18
double high=180.5
在空间中创建了一个char类型的变量,申请了 8bit的空间,叫ch
四、变量、常量
生活中有些值不变,(例如:圆周率,身份证号,血型等)
有些值会变(例如:身高,体重,年龄等)
不变的值C语言用常量表示,改变的值用变量表示
4.1定义变量的方法
char ch='w';
int age=18;
float weight=55.5f;
//55.5 编译器默认是double类型
//55.5f 是float类型
4.2变量的命名
- 只能由字母(包括大写和小写)、数字和下划线( _ )组成
- 不能以数字开头
- 长度不能超过63个字符
- 变量名中区分大小写的
- 变量名不能使用关键字
4.3变量的分类
- 全局变量
- 局部变量
注意:当局部变量和全局变量同名时,局部变量优先使用
变量的使用
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum=%d\n",sum);
return 0;
4.4变量的作用域和生命周期
作用域:
一段代码中的变量名并不总是有效,限定这个变量的可用性的代码范围就是这个变量的作用域
- 局部变量的作用域是变量所在的局部范围
- 全局变量的作用域是整个工程
注意:在写代码是要尽量少使用全局变量
生命周期:
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量:进入作用域生命周期开始,出作用域生命周期结束
- 全局变量:整个程序的生命周期
4.5常量
C语言中常量分为以下类型:
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
const修饰的常变量
#define定义的标识符常量
枚举常量
五、字符串、转义字符、注释
5.1字符串
有双引号引起的一串字符叫做字符串
注意: 根据上面的代码,可以看出在字符串的后面隐藏了一个‘\0’的转义字符,‘\0’是字符串结束的标志。chi1中没有‘/0’,在打印时会一直向后打印,直到找到‘\0’停止
注意: strlen是库函数,使用时要引头文件,它是用来计算字符串的长度,求‘/0’之前的字符个数,‘/0’不算做字符串的内容
5.2转义字符
转义字符 | 释义 |
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\' | 用于表示字符常量' |
\" | 用于表示一个字符串内部的” |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
\a | 警告字符 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | d d d表示1~3个八进制的数字。 如: \130 表示字符X |
\add | d d表示2个十六进制数字。 如: \x30 表示字符0 |
??) --- 三字母词 --->在有些编译器中会编译成 ]
根据错误提示可以知道,单引号(双引号)会与它离得最近的结合,所以要使用’/’,使中间的单引号表示为字符常量
六、注释
- 代码中不需要的代码可以不用删除,将代码注释
- 有些代码会很复杂,可以加一些解释文字
注释有两种分风格
- C语言风格的注释 /*xxxxxxxxx*/
缺点:不能嵌套注释
- C++风格的注释 //xxxxxxxxx
可以注释一行,也可以注释多行
注意:注释更重要的用途是解释代码
七、选择语句
选择语句的分类
- if语句
- switch语句
#include <stdio.h>
int main()
{
int a = 0;
printf("能否坚持学习(选择0or1):>");
scanf("%d", &a);
if (a == 1)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
八、循环语句
循环语句的分类
- while语句
- for语句
- do ……while语句
#include <stdio.h>
int main()
{
int a = 1;
while (a < 10)
{
printf("%d ", a);
a++;
}
return 0;
}
九、函数
函数的分类
- 库函数
- 自定义函数
#include <stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
函数的特点就是简化代码,代码复用
十、数组
C语言中给了数组的定义:一组相同类型元素的集合
10.1数组的定义
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
10.2数组的下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。 数组可以通过下标来访问的
10.3数组的使用
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
十一、操作符
简单对操作符进行分类,不展示用法
- 算术操作符
+ - * / %
- 移位操作符
<< >>
- 位操作符
& | ^
- 赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符
exp1 ? exp2 : exp3
下标引用、函数调用和结构成员
[] () . ->
十二、常见关键字
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
十三、#define定义常量和宏
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10 * ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。