什么是C语言?
为什么要使用C语言呢?
C语言的标准
敲出我们第一个C语言程序
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
相信许多刚刚学习编程的小白(包括我),敲得第一个程序都是这个,那么这个代码怎么去理解呢?
- 程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。也就是我们常说的包含头文件。
- 下一行 int main() 是主函数,程序从这里开始执行。main()函数是程序的入口,而且整个程序中有且只有一个main()函数哦。
- 下一行 /.../ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。在编程过程中如果遇到不需要的代码,可以直接删除也可以注释掉。当遇到比较难懂的代码,也可以文字注释下,方便自己阅读代码。
//第一种注释方法如下: // 单行注释 ---------------------------- //第二种注释方法如下()这种方法不可以嵌套使用 /* 单行注释 */ /* 多行注释 多行注释 多行注释 */
- 下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。
- 下一行 return 0; 终止 main() 函数,并返回值 0。
数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
注意:有这么多类型是为了更好的描述生活中各种各样的数值
如果我们想知道每个类型所占内存空间大小该怎么做呢?
这里我们可以使用sizeof()运算符进行计算,计算出的数值单位是比特。
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));
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; }
常量
在我们的显示生活中,有许多的值是不会改变的。比如:身份证、血型、性别等。
而这些不会改变的值,在C语言中用常量来表示。
常量的定义方法
int age = 20;
float weight = 70.3f;
char ch = 'C';
C语言中的常量分为以下以下几种:
字面常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
return 0; }
const 修饰的常变量
int main()
{
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
pai = 5.14;//是不能直接修改的!
return 0; }
#define 定义的标识符常量
//#define的标识符常量
#define MAX 100
int main()
{
printf("max = %d\n", MAX);
return 0; }
枚举常量
#include<stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//打印枚举常量
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
变量
定义变量的方法
#include<stdio.h>
int main()
{
int age =20;
float pai =3.14f//如果不加f,编译器默认为double类型
return 0;
}
注意:
创建变量的时候一定要初始化,局部变量如果不初始化,它的值是随机的!!
变量的分类
在C语言中一个{ }就是一个代码块。
在代码块内部定义的变量就是局部变量。
在代码块外面定义的变量就是全局变量。
#include <stdio.h>
int a = 2022;//全局变量
int main()
{
int b = 2020;//局部变量
//下面定义的global会不会有问题?
int a = 2020;//局部变量
printf("a = %d\n", global);
return 0; }
变量的使用
#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; }
//这里介绍一下输入,输出语句
//scanf -> 输入函数
//printf -> 输出函数
变量的生命周期和作用域
作用域
局部变量的作用域就是变量所在的局部范围。
全局变量的作用域就是整个程序。
生命周期
局部变量:进入局部变量所在的范围,生命周期开始,出了局部变量所在的范围,生命周期结束。
全局变量:就是整个程序的生命周期。
字符串+转义字符
字符串
"hello bit.\n"
由双引号引起的一串字符就是字符串。
注意:
转义字符
转义字符 | 释义 |
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\' | 用于表示字符常量' |
\“ | 用于表示一个字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符。 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。 如: \130 X |
\xdd | dd表示2个十六进制数字。 如: \x30 0 |
选择语句
要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
在C语言中提供了以下选择语句:
语句 | 描述 | |
if 语句 | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成 | |
if...else 语句 |
| |
嵌套 if 语句 | 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 | |
switch 语句 | 一个 switch 语句允许测试一个变量等于多个值时的情况。 | |
嵌套 switch 语句 |
|
循环语句
有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
在C语言中提供了以下循环语句:
循环类型 | 描述 |
while 循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for 循环 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do...while 循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
嵌套循环 | 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 |
循环控制语句
循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。
C 提供了下列的循环控制语句。
控制语句 | 描述 |
break 语句 | 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 |
continue 语句 | 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 |
goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
无限循环
如果设置的条件不为假,这个循环就不会停止,就变成我们常说的死循环!
for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,可以将某些条件表达式留空来构成一个无限循环。
#include <stdio.h>
int main ()
{
for( ; ; )//三个表达式都为空
{
printf("这个循环就吃了炫迈!根本停不下来!!!\n");
}
return 0;
}