本文章内容为C语言基础知识汇总,不会对知识点进行系统的术语解释,若有错误之处,望海涵斧正。
文章目录
目录
前言
一、预备知识
1.c语言之父
2.第一个程序
3.数据类型
4.关键字
5.常量变量
一、变量
二、常量
6.字符串+转义字符+注释
一.字符串
二.转义字符
三.注释
内容程序持续更新中
20世纪70年代,贝尔实验室的 Dennis Ritchie(丹尼斯·里奇) 为能够完成开发 UNIX 操作系统,设计了一种能够生成简洁、快速的程序,并能有效地控制硬件,将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合一体的程序设计语言。
现在用c语言写一个简单的程序,由此进入c语言的世界:>
#include
void print(void)
{
printf("Hello Word!\n");
}
int main(void)
{
print();//在终端打印Hello Word!
return 0;
}
每个语句都需要分号表示结束
运行结果:
c程序是由一个个函数(Fnuction,一种子程序)组成的,上述程序中涉及3个函数:main()、printf() 和print()
其中:>
1.printf()是系统事先设计好的函数(又叫库函数,调用需要对应的头文件),用于数据的输出。
2.print()是程序中(自己)定义的函数,主要用于在终端打印字符串”Hello Word“。
3.main( )函数是程序的主函数,是程序运行的入口,所有c程序都有且只有一个main()函数,当main()函数结束时,程序也就结束了。
那么进入主函数main()后,程序又是怎样运行或者说是程序的每个模块(可以是一个语句,一段程序或一个函数等)运行的流程又是怎样的呢?
模块运行流程的控制,主要分为三种情况:>
一、顺序控制结构( Sequential Control Structure )
从上到下,依次执行每一个模块,即一个程序模块执行完后,按自然顺序执行下一个模块。
二、分支控制结构( Branch Control Structure ,又叫选择结构)
具有判断某个条件的功能,并且能够根据条件的判断结果,执行对应的模块。
三、循环控制结构( Leep Control Structure )
在条件限制范围内,满足条件就不断重复执行相应的模块
利用三种基本的控制结构,就能用计算机语言去描述和解决生活中的实际问题,但是更让人吃惊的是,计算机科研人员对数据的存储和处理方式更是巧妙,但是让我们先来了解一下数据类型
数据类型是将数据按照某一规则进行区别时所定义的分类标签,每种数据类型的输入输出格式不同,所占空间字节大小也有所不相同。
基本数据类型 | ||||
---|---|---|---|---|
分类 | 名称 | 书写格式 | 输入输出格式 | 字节大小 |
字符型 | 字符型 | char | %c | 1 |
整型 | 短整型 | short | %d | 2 |
整型 | int | 4 | ||
长整型 | long | 4 | ||
长长整型 | long long | 8 | ||
浮点型 | 单精度浮点型 | float | %f | 4 |
双精度浮点型 | double | %lf | 8 |
以上数据类型在入门阶段使用已经绰绰有余了,更详细的内容请点击这里开发中
注意:>
(1)定义long或者float类型变量时,赋值时可以加类型名字的首字母(大小写均可)进一步说明
(2)整数和浮点数类型求值范围大小
double > float > long > int > short > char
C语言虽然是一种和计算机交流语言,但是它和我们平时交流所有的语言一样,由"单词"和语法构成,不过C语言中的单词是一些标识符(包括保留字(即关键字)和用户自定义的标识符(如变量的名称)),常量,运算符和分隔符等等。语法又牵扯到表达式,变量定义,语句,函数定义与调用,输入与输出等。
接下来,先学习其中简单且一定要知道的变量和保留字(即关键字):>
C语言规定的赋予特定含义和有专门用途的标识符,它主要与数据类型和语句有关。
如:
int(整数类型)、float(浮点类型)、char(字符类型)、typedef(自定义类型)
if...else、switch、for、while、break等。
常量就是可以不能改变的,变量就是可以改变的量。
1.变量的定义:数据类型 变量名称 = 初始化(数据值);
char ch ='0';//字符类型
int a = 0;//整数类型
double b = 0;//浮点类型
2.注意事项:变量名称(标识符)只能由字母,数字,下划线(_)和美元符号($)构成,而且变量名称不能由数字开头的,不能与保留字相同
int 1a=0;//由数字开头
int a&b=0;//有其他字符
int pow=0;//使用关键字
这些变量的命名都是非法的
变量定义时一定要初始化,同时不能重复定义,只能存在一个值,并且虽然一行可以定义多个变量,但是相同类型的变量也应分开定义,才能方便注释,同时变量的名称应该“见名知义”,提高代码的可读性。
例如,统计一群学生中语文成绩不及格的人数
//不良习惯
int a,b,c;
//良好习惯
int n=0;//学生人数
int score_ch=0;//语文成绩
int count=0;//不及格人数
3.变量的作用范围(作用域)和生命周期
变量由作用范围可以分为全局变量和局部变量:>
例如:>
#define _CRT_SECURE_NO_WARNINGS 1
#include
int count = 0;//不及格人数
int Count(int score)//统计不及格人数
{
if (score >= 0 && score < 60)
{
count++;
}
return count;
}
int main()
{
int n = 0;//学生人数
scanf("%d", &n);
int score_ch = 0;//语文成绩
for (int i = 0; i < n; i++)
{
scanf("%d", &score_ch);
Count(score_ch);
}
printf("不及格人数:%d", count);
return 0;
}
1.其中count是全局变量,它既可以在Count函数里面使用,又可以在主函数里面使用,
2.其中的n和score_ch是局部变量,它的作用范围是整个主函数所包括的范围
3.变量i只能在for循环内部使用,变量Count的形式参数score也只能在Count函数内部使用
这些变量离开自己的作用范围,他们的生命周期也到此结束了!
1.常量的数据类型:>
1//整型常量
1.1//浮点型常量
"abc"//字符串常量
2.常量的分类:>
1.字面量
上面那些就属于字面量
2.const修饰的常变量
本质还是变量(可以用数组证明),但是值不能被修改
const int a = 0;
3.#define定义的标志符常量
#define是一种预处理指令
#define MAXN 10
这样MAXN的值就等于10,不用分号
4.enum枚举常量
定义:
//默认
enum sex //enum 枚举名
{
man, //成员1,
woman, //成员2,
alien, //成员...,
};
//man代替0,woman代替1,alien代替2
//初始化
enum sex
{
man=1,
woman,
alien=5,
};
//代表man代替1,woman代替2,alien代替5
成员名1如果没有赋值,默认值为零,并且从上往下依次增加
字符串又称常量字符串,即是一串字符的集合
char str = "abc";
计算字符串长度
库函数strlen(str),需要头文件string.h
字符串由双引号("字符串")括起,并且每个字符串的末尾都隐藏了一个字节模式全为0的字节NUL,即字符'\0'(字符用单引号括起),'\0'是字符串识别结束的标志,不计入长度(一个字符计为一个长度,转义字符特殊)。
由斜杆\和某些字母及数字组成的,改变了原有意思的字符
例如:>
\a //声音警报
\n //换行
\ddd //对应8进制ASCII字符
\33 //字符'!'
\xdd //对应16进制ASCII字符
\x21 //字符'!'
计为一个长度
用于解释和说明程序某个部分的功能和作用(即对代码的解释说明),注释的内容不会被编译,使用也可以用来删除代码
1.单行注释
//
由两个反斜杠构成,一次只能注释一行,但是注释更加灵活,所以更常用
2.多行注释
/* */
由对称的反斜杠和星号构成,可以一次注释一行和多行
注意:>对多行注释进行嵌套时使用时,由于遇到第一个 * / 注释就结束了。虽然//不会,但是不推荐
//呵呵//哈哈哈
/*呵呵/*呵呵*/哈哈*/ 哈哈的内容不被注释