简介
这是我挖的新坑系列之《C语言的学习》,用来记录学习C语言的过程,以后星期五上传一篇文章,欢迎铁汁来喷!!!
学习方法:
1、要多练习,多练才是王道,练习语句、练习习题;
2、用画图的方式去理解内存、理解指针;
3、学会调试,感知代码运行的逻辑。
内容
一、C语言是什么?
C语言就是人与计算机沟通的桥梁;
二、我的第一个C语言程序
代码语言:javascript复制#include<stdio.h>
int main()//主函数,有且只于一个
{
printf("hello C");//库函数的一种
return 0;
}
理解:
第一行 编译预处理指令,头(head h.)文件;
第二行 函数的入口,函数的开始有且只有一个;
第三行 函数体用花括号括起来;
第四行 函数库中的打印字符串;
第五行 函数执行结束的标志与第二行的 int 形成对应。
易错:
1、main易写错;
2、容易少();
3、使用了中文符号;
4、语句结束后没有 分号(;)。
解释
三、main函数、return 0
代码语言:javascript复制#include<stdio.h>
int main()//主函数,有且只于一个
{
printf("hello C");//库函数的一种
return 0;
}
关键字 int:看第二行;
关键字或保留字的一种,关键字具有特殊意义,是保留给C使用的,当自己在创建标识符时是不能够与关键字重复的,同时关键字是不能够自己创建的。
C语言重要的32个关键字(不能自己自创与其冲突):
1、auto break case char const continue defaulf do double else enum extern
2、foloat for goto if int long register return short signed sizeof
3、struct switch typedef union unsigned void volatile while
注:https://zh.cppreference.com/w/c/keyword
关键字 | 说明 |
---|---|
continue | 结束当前循环,开始下一轮循环 |
break | 跳出当前循环 |
default | 开关语句中的“其他”分支 |
sizeof | 计算数据类型长度 |
return | 子程序返回语句(可以带参数,也可不带参数)循环条件 |
auto | 声明自动变量 |
---|---|
short | 声明短整型变量或函数 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数 |
float | 声明浮点型变量或函数 |
double | 声明双精度变量或函数 |
char | 声明字符型变量或函数 |
struct | 声明结构体变量或函数 |
union | 声明共用数据类型 |
enum | 声明枚举类型 |
typedef | 用以给数据类型取别名 |
const | 声明只读变量 |
unsigned | 声明无符号类型变量或函数 |
signed | 声明有符号类型变量或函数 |
extern | 声明变量是在其他文件正声明 |
register | 声明寄存器变量 |
static | 声明静态变量 |
volatile | 说明变量在程序执行中可被隐含地改变 |
void | 声明函数无返回值或无参数,声明无类型指针 |
if | 条件语句 |
else | 条件语句否定分支(与 if 连用) |
switch | 用于开关语句 |
case | 开关语句分支 |
for | 一种循环语句 |
do | 循环语句的循环体 |
while | 循环语句的循环条件 |
goto | 无条件跳转语句 |
注:在C99标准中加⼊了 inline 、 restrict 、 _Bool 、 _Comploex 、 _Imaginary 等关键字。
main:看第二行;
每个C语言程序不管有多少行代码,都是从main开始执行的,main函数是程序的入口,main函数也被称之为:主函数。main前面的int表示函数结束时返回一个整型类型的值,所以在main函数的最后写return 0 正好前后呼应。
四、printf 和 库函数
看第四行
代码语言:javascript复制#include<stdio.h>
int main()//主函数,有且只于一个
{
printf("hello C");//库函数的一种
return 0;
}
printf:是库函数的一种,它的功能就是在屏幕上进行信息打印;
库函数:也称为标准库,是由不同编译器厂商制定的统一的标准,统一常用的函数;
https://cplusplus.com/reference/clibrary/
#一个系列的库函数一般会声明在同一个头文件之中,所以使用库函数时要包含对应的头文件#
代码语言:javascript复制#include<stdio.h>
想进行打印时,只需要把打印的字符放进双引号中并传递给 printf 函数就可以打印。
printf 也可以打印其他类型的数据,比如:
代码语言:javascript复制printf("%dn", n);//打印整型
printf("%cn", 'q');//单个字符
printf("%lfn", 3.14);//双精度浮点型
……
五、字符与字符串
代码语言:javascript复制#include<stdio.h>
int main()//主函数,有且只于一个
{
printf("%c n", 'A');//字符用单引号,占位符用%c
printf("%s ","hello C");//字符串用双引号 占位符用%s
return 0;
}
在键盘上敲出来的各种单个内容称为字符,通常用单引号括起来,如:'a' 'b';
单引号为单个字符,打印格式为;
代码语言:javascript复制printf("%cn",'a');
使用双引号的就是字符串,打印格式为;
代码语言:javascript复制printf("%sn","hello c");
字符串后隐藏了个 ,是字符串的结束标志。
六、转义字符
转变原来意思的字符;
1、打印“abcndef”;
代码语言:javascript复制printf("abcndef");
2、在n前方加上
代码语言:javascript复制printf("abcndef");
代码语言:javascript复制输出结果就会变成
abc
def
这就是转义字符,像在C语言中转义字符还有很多,功能各有所不同;
总结以下:
? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了;
':用于表示常量单引号;
":用于表示常量双引号;
\:表示一个反斜杠,防止被解析为转义字符(输出路径时);
a:发出警报或出现闪烁;
b:退格键,但不删除代码;
f:换页符号,类似于v;
n:换行符号;
r:回车符,光标移动到同一开头;
t:制表符(Tab),光标移动到下一个水平制表位,下一个通常为8的倍数;
v:垂直分隔符,光标移动到下一个垂直制表位,通常为下一行的同一列;
字符的8进制或16进制表现形式:
ddd:ddd表示1~3个八进制数;如:130,查ASCII可知表示X;
xdd:dd表示2个16进制的数字;如:x30,表示字符0。