1.什么是C语言?
1.1 下面是维基百科给出的解释:
C是一种通用的、过程式编程编程语言,支持结构化编程、词法作用域和递归,使用静态类型系统,并且广泛用于系统软件与应用软件的开发。
C语言于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。二十世纪八十年代,C语言应用日渐广泛。为了避免各开发厂商用的C语言的语法产生差异,美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。与此同时,国际标准化组织也接受该标准为国际标准。因此,ANSI C也同时被称为ISO C。二十世纪八十年代至今的有关程序开发工具,一般都支持符合ANSI C的语法。
C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。现行的许多软件都是由C语言或者其影响和派生的编程语言开发出来的。
1.2 C语言的特性
C语言具有以下特性:
基本数据类型包括字符、整型和浮点数等。另外也有派生的各种数据类型,如指针、数组、结构和联合。
部分的变量类型可以转换,例如整数型和字符型变量。
通过指针(pointer),C语言可以容易的对存储器进行低端控制。
不同的变量类型可以用结构体(struct)组合在一起。
具有基本的控制流:语句组、条件判断、多路选择、循环等。
函数可以返回各种数据类型的值,并且都可以递归调用。每次调用函数会重新创建变量。
C语言只有32个保留字,使变量、函数命名有更多弹性。
编译预处理)让C语言的编译更具有弹性。
2.如何写出一个C语言程序
2.1 环境配置
推荐使用VS系列编译器,包含多个版本,下面是具体的安装流程
- 点击这里进入VS官网
2. 选择社区版,这个版本是免费的
3. 勾选含有C++开发的选项即可(因为C++兼容C)。
然后点击安装,
大约十分钟左右就能安装好了。
- 注意,安装完毕后在桌面上是找不到VS的,需要在开始菜单里找
看下面的操作
然后把它拖拽到桌面上,这样以后就方便使用了
2.2 创建一个新项目
-
首先打开VS编译器,创建一个新项目
-
选择空项目,点击下一步
-
然后给项目起一个名称,选择存储位置(这里建议单独创建一个空间用于存放代码,方便以后查找使用),然后点击创建
-
然后进入到这样一个页面,左键点击源文件
扫描二维码关注公众号,回复: 14617294 查看本文章 -
点击 添加->新建项
-
选择 C++文件(.cpp)
-
将名称改为 .c 为后缀(如果后缀为.cpp,编译器会按照C++的语法编译代码。如果后缀为.c,编译器会按照c的语法编译),点击 添加
到这里一个项目就创建好了。
2.3 代码演示
点击 调试->开始执行不调试(或者按住Ctrl+F5)编译器开始运行。
输出运行结果:
3. 那么C语言程序是怎么写的?
3.1 C程序的结构
C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
3.2 C语言一定要有main 函数
- 什么是main函数?
main函数,又称主函数,是程序执行的起点,main是相对来说的,即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。 有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。 - 在C语言中,规定main函数有且仅有一个
- 标准的main函数的写法:
int main()
{
return 0;
}
1. 所有的 C 语言程序都需要包含 main() 函数。 代码从 main() 函数开始执行。
2. 这里的括号一定要写英文括号,否则无法编译
3. 这里的大括号也是英文的大括号
4. 这里的分号也是英文的分号,用来表示一条语句的结束
5. 上面的 int 表示函数的类型是int类型,也就是整型类型。
6. return 0; 语句用于表示退出程序, 0 表示的是整数,表示函数的返回值是整型,
在C语言中,习惯性约定 函数返回 0 表示程序正常运行,异常终止时函数返回非零
3.3 库函数
-
什么是库函数?
库函数(Library function)是将函数封装入库,供用户使用的一种方式。 方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。 调用的时候把它所在的文件名用 #include<> 加到里面就可以了。 一般是放到lib文件里的。
-
在上面的程序中 printf是一个库函数,专门用来打印数据。
在使用printf时包含一下它所在的头文件,否则编译时会报错,导致无法使用。
样例:#include <stdio.h>
1. printf是一个关于标准输入输出的函数 2. 这里的 std 表示 标准 3. 这里的 i 表示 input 即输入 4. 这里的 o 表示 output 即输出 5. #include 是一个预处理命令,用来引入头文件。
4. 数据类型(这里以初步认识为主,在后面的C语言进阶中会做专门讲解)
-
什么是数据类型?
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 -
C的数据类型可以分为以下几种:
4.1 整型类型
5 . 变量,常量的概念
- 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。 - 变量又分为局部变量和全局变量,它们的作用域不同,可以简单地认为:在{}外部的变量为全局变量,在{}内部的变量为局部变量。
- 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
5.1 变量的定义
- 如下:
int main()
{
short age=18; //年龄
int high=180; //身高
float=75.5; //体重
return 0;
}
- 变量不能在同一作用域内重复定义,比如同时定义为局部变量:
int main ()
{
int a=10;
int a=20;
return 0;
}
或者同时定义为全局变量:
int a=10;
int a= 20;
int main()
{
return 0;
}
5.2 局部变量和全局变量优先级
- 当一个变量名分别被定义为一个全局变量和一个局部变量,在程序执行时,优先执行局部变量,建议命名时尽量不要把全局变量和局部变量取成相同的名字。
#include <stdio.h>
int a = 20;
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
运行结果:
5.3变量的使用
5.3.1 写一个代码,求两个函数的和
#include <stdio.h>
int main()
{
int num1=0;//初始化
int num2=0;
scanf("%d" "%d" ,&num1,&num2);
int sum=num1+num2;
printf("%d",sum);
return 0;
}
- 初始化:在创建变量时赋给变量一个值。
- 初始化的意义:1. 如果不初始化编译时会报错 2.未初始的变量存放的是随机值,在后续使用变量时会影响计算结果
5.4 变量的作用域和生命周期
作用域
作用于是程序设计概念,通常来说,一段代码中所用到的名字并不总是有效的,而限定这个名字可用性的代码范围就是这名字的作用域。
生命周期
变量的生命周期是指变量的创建到变量的销毁的一段时间。
- 局部变量的生命周期是:进入作用域生命走起开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
举个例子:
#include <stdio.h>
int main()
{
{
int a=10; //局部变量,作用域在它所在的大括号内
printf("%d\n",a);
}
printf("%d\n",a);//在a的作用域外,无法调用a。
return 0;
}
再看一个例子
#include <stdio.h>
int main()
{
int a = 10;
{
printf("%d\n", a);
}
printf("%d\n", a);
return 0;
}
再看一个例子
#include <stdio.h>
int a = 10; //全局变量,作用域是整个程序
int main()
{
{
printf("%d\n", a);
}
printf("%d\n", a);
return 0;
}