概述
写在前面
本文作者将从什么是C语言入手让大家更了解它,然后手把手教学编写第一个程序。
作者还把C语言主要有的的知识面结合自己的理解整理记录成此文章,简单介绍C语言大概的知识面和要点,意在使读者尤其是初学者能大概了解C语言更快更好的学好它。
目录
1.什么是C语言
1.1计算机与机器语言
1.2汇编语言
1.3高级语言
2.编程环境的构建
2.1C语言编译器
2.2Visual Studio 安装
3.第一个c语言程序
3.1写前必备
3.2打印Hello world!
3.3代码初解
4. 数据类型
5. 变量和常量
5.1变量
5.2 常量
6. 字符串+转义字符+注释
6.1 字符串
6.2 转义字符
6. 3注释
7. 选择语句
8.循环语句
9.函数
10. 数组
11.操作符
12.常用关键词
13. #define 定义常量和宏
14. 指针
15. 结构体
1.什么是C语言
1.1计算机与机器语言
- 计算机俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。
- 能够按照程序运行,自动、高速处理海量数据。而要想让电脑按照程序和指令运 行,就需要给机器下达指令。
- 对于早期的机器它们只能直接识别两种状态, 一种是通电一种是断电,意味着机器通过电路和二极管来完成。
科学家们为了简化机器,利用数学语言0和1来表示计算机能够识别的通电和断电两种状态。所以计算机能识别的所有指令以及存储和操作的数据都是由0和1组成的。计算机里都采用二进制。
“二进制”,就是一种仅用“1”和“0”的排列组合来表示具体数值的,一种记数方法。
虽然简化了很多,但这时候机器就只能听得懂0和1,给机器下达一条简单的指令需要很长的一串01数字。写程序下指令还是很复杂,编程只有科学家会,写的过程也很痛苦,还需要不断地查表,出现了问题也很难检查。
这些可以由计算机直接识别的二进制代码就叫做机器语言,无需编译即可下达指令给计算机。
类似说,英语也是一门语言,用于人和人之间交流合作。说出英语后,懂英语的人会根据你说的指令去干活。而机器语言就是电脑机器等可以听懂或者看懂的言语。人输入机器语言机器听懂以后会做出你指定的相关动作,例如打开软件,计算数字之和。
1.2汇编语言
为了进一步地简便化,科学家们发明了助记符。
举一个例子,假设0101 0110 表示需要机器去做加法,这时候科学家们用add标记这一串数字,以后下达命令写代码的人只需要写这些标记符就可以了,会有专门的编译器把助记符翻译成复杂的机器语言传达给机器。
由这些助记符构成的语言就叫汇编语言。
1.3高级语言
后来科学家依次发明了b语言和 c语言 c++ java Python等高级语言,编程越来越方便。
对于C语言来说:
- 特点
C语言是一门通用计算机编程语言,广泛应用于底层开发。作为面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。它既具有高级语言的特点,又具有汇编语言的特点。 设计目标是提供一种能以简易的方式编译、处理低级存储器的编程语言。
- 标准与跨平台
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言出现后,各个公司都自己改造c语言,导致各个人用的符号都不一样。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,让c语言成为通用语言,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
2.编程环境的构建
2.1C语言编译器
C语言编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
Gcc是最常用的编译器,但对于初学者来说一般使用集成开发环境(IDE,全称Integrated Development Environment用于提供程序开发环境的应用程序,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套)如:Visual Studio ,一般不建议使用Devc++。
2.2Visual Studio 安装
- Visual Studio 下载 2022 目前官网只提供2022
首先在在浏览器搜索VisualStudio,然后按照图片步骤操作。
根据电脑的系统去选择。
来到这个界面等待下载。
打开文件
等待安装。好之后点击启动,没账号不用登录,有的话可以登录。
安装完了可以设置自己喜欢的字节,颜色等,这需要创建项目进入以后才能操作,在后面第一个c程序创建项目了后面会讲哦。
- 最新版的一般来说因为刚出可能用的比较少或者还有些小bug,大家一般都比较喜欢用2019.1如果有想要安装vs2019的伙伴可以私信我!
3.第一个c语言程序
3.1写前必备
- C语言项目有两部分组成,我们写的一般是源文件。
3.2打印Hello world!
- 工具:Visual Studio
- 步骤:创建新项目-->空项目-->起名(尽量用英文)-->选择路径(最好固定一个路径)-->写代码
- 功能:在屏幕上打印helloworld
学的C语言就改成xx.c,xx.cpp是c++语言。
- 写代码
#include<stdio.h>
int main()
{
printf("Hello world!");
return 0;
}
- 运行
第一种方式按ctrl+F5
第二种:
- 结果
3.3代码初解
- 注: main函数是程序的入口,编译器系统都是从main 开始进行编译执行。意味着写代码必须要写main函数。
一个项目中可以写多个.c的源文件但是main函数有且只能有一个
main函数基本写法:
int main()
{
…//写自己的代码
return 0;
}
#include <stdio.h>:
#为预处理的意思 因为使用了printf。stdio.h这个文件相当于有这个助记符的能翻译printf的字典,要提前告知机器翻译时要用到这个字典来翻译。
printf实现功能在屏幕打印对应内容。
4. 数据类型
- 类型
- 类型大小
- 类型描述这些东西的同时机器要储存数据,像大脑的记忆一样,不同数据类型的空间大小标题。如果想知道每一个类型占用空间多少可以使用操作符sizeof。
#include<stdio.h>
int main()
{
printf("%d ",sizeof(char)); //1
printf("%d ",sizeof(short)); //2
printf("%d ",sizeof(int)); //4
printf("%d ",sizeof(long)); //4
printf("%d ",sizeof(long)); //8
printf("%d ",sizeof(float)); //4
printf("%d ",sizeof(double)); //8 单位都是字节 byte
return 0;
}
- 类型的使用:
- 格式控制符
eg:int num=0;printf(" %d ",num);char arr[7]="abcdef";//这是字符串,第四章会讲到printf(" %s ",arr);
5. 变量和常量
5.1变量
- 定义变量的方法
其本质是向内存申请一块空间,放入值,出了一定的区域会被系统删除,就像记忆一样。
- 变量的命名
- 变量的分类
#include <stdio.h>int global = 2019; //全局变量int main(){int local = 2018; //局部变量return 0;}
#include <stdio.h>int global = 2019;int main(){int global = 2020;printf("global = %dn", global);return 0;}//运行结果:2022
一般如果在某块代码处需要给全局变量赋一个新值时可以进行变量的覆盖。
变量的作用域和生命周期
5.2 常量
123,3.1415
const int num=10;num=20;//会报错,因为const修饰 num的值不能改变了//注:但是它本质还是一个变量,如果有语法规定只能用常量的地方不能放 num,编 译器默认它不符合语法。const int num=10;int arr[num];//报错,因为语法规定,数组定义[]内一定要用常量。(数组后面会介绍,记住就可以)
#define PI 3.1415926 //PI贯穿整个项目都会用到
enum Sex{MALE,FEMALE,SECRET};//枚举常量演示,固定写法printf("%dn", MALE); //结果为0因为系统默认会给它们依次赋值0,1,2,3……,括号中的MALE,FEMALE,SECRET就是枚举常量 是常量就不能改,
// Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday也是枚举常量