C语言——A/概念

2024-03-11 19:22:51 浏览数 (1)

简介

这是我挖的新坑系列之《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。

:null字符,代表没有内容, 就是 ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0. 转义字符参考:https://zh.cppreference.com/w/c/language/escape

总结

七、语句

C语言的代码是有由一条一条的语句构成的,在C中可以分为5类:

7.1、空语句
代码语言:javascript复制
#include <stdio.h>
int main()
{
	;//空语句
	return 0;
}
7.2、表达式语句
代码语言:javascript复制
#include <stdio.h>
int main()
{
   int a = 20;
   int b = 0;
   b= a   b;//表达式语句
   return 0;
}
7.3、函数调用语句
代码语言:javascript复制
#include <stdio.h>
int Add(int x, int y)
{
	return x   y;
}
int main()
{
	printf("hehen");//函数调⽤语句
	int ret = Add(2, 3);//函数调⽤语句
	return 0;
}
7.4、复合语句

成对括号中的代码构成一个代码块,也被称为复合语句;

7.5、控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式,(在C中支持三种结构:顺序结构、选择结构、循环结构)分别有九种控制语句,分为三类;

1、条件判断语句也叫分支语句:if语句、switch语句;

2、循环执行语句:do while语句、while语句、for语句;

3、转向语句:break语句、goto语句、continue语句、return语句;

八、注释

为什么要写注释???

注释不仅是给其他人看的,更是给自己看的,不能过度注释,也不能忽略注释。

1、第一种 /* */(不能嵌套注释,也就是所谓的注释里面套一个注释,否则无法识别)

代码语言:javascript复制
#include<stdio.h>
int main()
{
	printf("%sn",/*这就是注释*/ "haha");
	return 0;
}

注意:如果在字符串内部注释,则会造成编译的空格。

2、第二种 //(新语法中的注释方法)

代码语言:javascript复制
#include<stdio.h>
int main()
{
	printf("%sn", "haha");//这就是注释
	return 0;
}

九、ASCII编码

https://zh.cppreference.com/w/cpp/language/ascii 字符在计算机中存储的方式是以二进制进行编码(类似与密码本与解密的过程)

我们不需要记住所有的ASCII码表中的数字,⽤时查看就行,不过我们最好能掌握⼏组特殊数据: • 字符A~Z的ASCII码值从 65 ~ 90; • 字符a~z的ASCII码值从97 ~ 122; • 对应的大小写字符(a和A)的 ASCII 码值的差值是32; • 数字字符0~9的ASCII码值从48 ~ 57; • 换⾏ n 的ASCII值是:10; • 在这些字符中ASCII码值从0 ~ 31这32个字符是不可打印字符,⽆法打印在屏幕上观察。

代码语言:javascript复制
#include <stdio.h>
int main() 
{
    // 使用ASCII码打印大写字母'A'
    printf("%cn", 65);
    return 0;
}

动力不够鸡汤来凑!!!

0 人点赞