C语言基础知识之预备知识

本文章内容为C语言基础知识汇总,不会对知识点进行系统的术语解释,若有错误之处,望海涵斧正。


文章目录

目录

前言

一、预备知识

1.c语言之父

2.第一个程序

3.数据类型

4.关键字 

5.常量变量

一、变量

二、常量

6.字符串+转义字符+注释

一.字符串

二.转义字符

三.注释



前言

内容程序持续更新中


一、预备知识

1.c语言之父

20世纪70年代,贝尔实验室的 Dennis Ritchie(丹尼斯·里奇) 为能够完成开发 UNIX 操作系统,设计了一种能够生成简洁、快速的程序,并能有效地控制硬件,将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合一体的程序设计语言。

C语言基础知识之预备知识_第1张图片

2.第一个程序

现在用c语言写一个简单的程序,由此进入c语言的世界:>

#include
void print(void)
{
	printf("Hello Word!\n");
}
int main(void)
{
	print();//在终端打印Hello Word!
	return 0;
}

 每个语句都需要分号表示结束

运行结果: 

C语言基础知识之预备知识_第2张图片

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 )

在条件限制范围内,满足条件就不断重复执行相应的模块 

利用三种基本的控制结构,就能用计算机语言去描述和解决生活中的实际问题,但是更让人吃惊的是,计算机科研人员对数据的存储和处理方式更是巧妙,但是让我们先来了解一下数据类型

3.数据类型

数据类型是将数据按照某一规则进行区别时所定义的分类标签,每种数据类型的输入输出格式不同,所占空间字节大小也有所不相同。

                                                                                       基本数据类型
分类 名称 书写格式 输入输出格式 字节大小
字符型 字符型 char %c 1
整型 短整型 short %d 2
整型 int 4
长整型 long 4
长长整型 long long 8
浮点型 单精度浮点型 float %f 4
双精度浮点型 double %lf 8

以上数据类型在入门阶段使用已经绰绰有余了,更详细的内容请点击这里C语言基础知识之预备知识_第3张图片开发中

注意:>

(1)定义long或者float类型变量时,赋值时可以加类型名字的首字母(大小写均可)进一步说明

(2)整数和浮点数类型求值范围大小

double > float > long > int > short > char

C语言虽然是一种和计算机交流语言,但是它和我们平时交流所有的语言一样,由"单词"和语法构成,不过C语言中的单词是一些标识符(包括保留字(即关键字)和用户自定义的标识符(如变量的名称)),常量,运算符和分隔符等等。语法又牵扯到表达式,变量定义,语句,函数定义与调用,输入与输出等。

接下来,先学习其中简单且一定要知道的变量和保留字(即关键字):>

4.关键字 

C语言规定的赋予特定含义和有专门用途的标识符,它主要与数据类型和语句有关。

如:

  • 定义不同数据类型的变量:>

int(整数类型)、float(浮点类型)、char(字符类型)、typedef(自定义类型)

  • 语句的使用:>

if...else、switch、for、while、break等。

5.常量变量

常量就是可以不能改变的,变量就是可以改变的量。

一、变量

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如果没有赋值,默认值为零,并且从上往下依次增加

6.字符串+转义字符+注释

一.字符串

字符串又称常量字符串,即是一串字符的集合

char str = "abc";
计算字符串长度
库函数strlen(str),需要头文件string.h

字符串由双引号("字符串")括起,并且每个字符串的末尾都隐藏了一个字节模式全为0的字节NUL,即字符'\0'(字符用单引号括起),'\0'是字符串识别结束的标志,不计入长度(一个字符计为一个长度,转义字符特殊)。

二.转义字符

由斜杆\和某些字母及数字组成的,改变了原有意思的字符

例如:>

\a    //声音警报
\n    //换行

\ddd    //对应8进制ASCII字符
\33    //字符'!'

\xdd    //对应16进制ASCII字符
\x21    //字符'!'

计为一个长度 

三.注释

用于解释和说明程序某个部分的功能和作用(即对代码的解释说明),注释的内容不会被编译,使用也可以用来删除代码

分类:

1.单行注释

//

由两个反斜杠构成,一次只能注释一行,但是注释更加灵活,所以更常用

2.多行注释

/* */

由对称的反斜杠和星号构成,可以一次注释一行和多行

注意:>对多行注释进行嵌套时使用时,由于遇到第一个 * / 注释就结束了。虽然//不会,但是不推荐

//呵呵//哈哈哈
/*呵呵/*呵呵*/哈哈*/     哈哈的内容不被注释

你可能感兴趣的:(c语言,算法,c++,开发语言)