C语言基础知识

孞㐑¥ 2024-08-17 13:35:01 阅读 63

一、基础函数

(一)main函数

首先main函数是一个函数,它是程序的主入口,代码都是从main函数开始执行的,所以它也被称为主函数。main函数有且仅有一个。

基本格式为:

(二)printf函数

printf是一个库函数,使用时需要包含对应头文件(#include<stdio.h>),作用是能够将信息打印在屏幕上。printf可以用来打印字符串,只要把想打印的字符串放在双引号中就可以(还可以使用%s这一占位符),如下图:

printf也可以用来打印其他数据,例如: (其中%d, %c, %f, %lf是占位符,会被后面的值替代)

(三)scanf函数

scanf是一个库函数,使用时要包含对应的头文件(#include<stdio.h>),作用是能够从屏幕上读取数据,和printf的用法很像。如图:

注:库函数是指为了不重复实现常见的代码,让程序员提升开发效率,C语言标准规定的一组函数,这些函数在由不同的编译器厂商根据标准进行实现。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数,一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用要包含对应的头文件。

二、关键字

C语言中有一批保留的名字的符号,例如int,double,char,if 。这些符号被称为保留字或者关键字,关键字都有特殊的意义,是留给C语言使用的,创建标识符的时候不能和关键字重复,关键字也不能自己创建。

如果想详细了解关键字,可使用网站:C 关键词 - cppreference.com

icon-default.png?t=N7T8

https://zh.cppreference.com/w/c/keyword

三、ASCII编码

键盘上打出的各种符号被统一称为字符,C语言中字符是用单引号括起来的,如'a' , 'b'等。计算机中的数据都是以二进制形式存储的,C语言中的字符就遵循ASCII编码的方式。

如图:

其中有几组特殊的数据,我们最好能够掌握:

字符A~Z的ASCII码值从65~90

字符a~z的ASCII码值从97~122

对应的大小写字符(a和A)的ASCII码值的差值为32

数字字符0~9的ASCII码值是从48~57

四、转义字符

转义字符:转变原来的意思的字符

如图:

其中 \n 就是一个转义字符,作用是换行。可以理解为:n本是一个普通的字符,被 \ 转义为换行的意思。C语言中的转义字符还有很多,这里只讲解其中一些,例如:

(1)\' : 用于表示字符常量 ' 

注:在C语言中,两个 ' 会被凑成一对,中间加入一个符号,以此来表示一个字符,如果不通过转义字符来打印,单独的那个没有凑成一对,编译器会报错。

(2)\" :用于表示一个字符串内部的双引号。

注:双引号和单引号很像,双引号中间放字符串,如果直接打印会因为没有凑成一对报错。

(3)\\ : 用于表示一个反斜杠,防止它被解释为一个转义序列符。

(4)\t : 制表符,相当于键盘上的Tab,光标移到下一个水平制表位。

注: \t被认为是一个转义字符,导致 \ 没有打印出来,为了避免这种情况,打印 \ 时要使用转义字符 \\ 

(5)\b : 退格键,光标回退一个字符,但不删除字符。

注:这里通过 \b 回退了一格,c 被 d 覆盖了。

 (6)\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0。

(7)\ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表示字符X(字符八进制的表示形式)。

(8)\xdd :d d表⽰2个⼗六进制数字。 如: \x30 表示字符0(字符十六进制的表示形式)。

五、语句

(一)空语句

只有一个分号就是一个空语句。

一般情况下,某处需要一条语句,但这个语句又不需要做任何事情,就可以写一条空语句。

(二) 表达式语句

在表达式后面加一个分号就是表达式语句。

(三)函数调用语句

函数调用时,后面加上分号,就是函数调用语句。(可以使库函数,也可以是自己定义的函数)

(四)复合语句

成对括号中的代码构成一个代码块,也叫复合语句。

(五)控制语句

控制语句用于控制程序的执行流程,已实现程2.序的各种结构方式(顺序结构,循环结构,选择结构),C语言中的控制语句可分为以下三类:

1.条件判断语句也叫分支语句:if 语句,switch语句。

2.循环执行语句:do while语句,while语句,for语句。

3.转向语句:break语句,goto语句,continue语句,return语句。

六、注释

注释是对代码的解释,编译器会忽略注释,所以注释是给自己或者其他程序员看的。

注释有两种方式:

(1)/**/ 形式

/*  和  */  中间的内容会被注释掉。

(2)//形式

// 后面的内容会被注释掉,这种注释只能是单行,可以放在行首,也可以放在一条语句的结尾。

七、数据类型

数据类型分为两类,一类是内置的,一类是自定义的,详细如图:

除上图所示外,内置类型还有布尔类型,布尔类型是在C99中引入的,是专门表示真假的。

布尔类型的使用需要包含头文件 <stdbool.h>

布尔类型变量的取值是true或者false

八、sizeof 操作符

sizeof是一个关键字,也是操作符,可以用来计算不同数据类型的长度,单位是字节。sizeof操作符的操作数可以是类型,也可以是变量或者表达式。当操作数是类型时:sizeof(类型),当操作数是表达式的时候,可以省略掉后面的括号:sizeof 表达式

sizeof后面的表达式是不真实参与运算的,根据表达式的类型得出大小。

sizeof的计算结果是size_t类型的,所以打印时可以用 %zd。

九、signed和unsigned

C语言使用signed和unsigned关键字修饰字符型和整型类型

signed关键字代表一个类型带有正负号,包含负值

unsigned关键字代表该类型不带有正负号,只能表示零和正整数

对于int类型,默认是带有正负号的,也就是说int等同于signed int

整型变量声明为unsigned的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。这是因为整型变量在计算机中以二进制存储,以signed修饰时,二进制最高位是符号位,表示数值的正负 ,而以unsigned修饰时,都是数值位。比如,十六位的signed short的取值范围是       -32768~32767,而unsigned short的取值范围是0~65535。

注意:C语言规定char默认是否带有正负号,由当前系统决定,也就是说char可能是signed char也可能是unsigned char,这一点与int不同,int就等同于signed int。

十、变量

(一)变量的创建

首先我们要知道类型时用来创建变量的,其次C语言中把经常变化的值称为变量,不变的值称为常量。变量的创建形式:

在定义一个变量的时候,我们最好初始化,否则使用了未初始化且未赋值的变量容易出bug。

这是因为main函数中定义的变量叫局部变量,如果不初始化是随机值(图中使用的编译器是VS2022,对语法要求较高,所以会报错,有些编译器则会打印出随机值)。如果想避免这种问题可以初始化,而初始化就是指在创建变量的同时,给一个值。

当然,变量创建好之后值也可以更改。

(二)变量的分类

(1)全局变量:在大括号外部定义的变量就是全局变量,全局变量的作用范围更广,在整个工程中想使用,都是可以使用的。

(2)局部变量:在大括号内部定义的就是局部变量,局部变量使用的范围比较有限,只能在自己所在的局部范围内使用。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。