C语言从小白到精通——初识C语言(1)上

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系列编译器,包含多个版本,下面是具体的安装流程

  1. 点击这里进入VS官网

在这里插入图片描述
2. 选择社区版,这个版本是免费的
在这里插入图片描述
3. 勾选含有C++开发的选项即可(因为C++兼容C)。
在这里插入图片描述
然后点击安装,
在这里插入图片描述
大约十分钟左右就能安装好了。

  1. 注意,安装完毕后在桌面上是找不到VS的,需要在开始菜单里找

看下面的操作
在这里插入图片描述
在这里插入图片描述
然后把它拖拽到桌面上,这样以后就方便使用了

2.2 创建一个新项目

  1. 首先打开VS编译器,创建一个新项目
    在这里插入图片描述

  2. 选择空项目,点击下一步
    在这里插入图片描述

  3. 然后给项目起一个名称,选择存储位置(这里建议单独创建一个空间用于存放代码,方便以后查找使用),然后点击创建
    在这里插入图片描述

  4. 然后进入到这样一个页面,左键点击源文件
    在这里插入图片描述

  5. 点击 添加->新建项
    在这里插入图片描述

  6. 选择 C++文件(.cpp)
    在这里插入图片描述

  7. 将名称改为 .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 变量的作用域和生命周期

作用域
作用于是程序设计概念,通常来说,一段代码中所用到的名字并不总是有效的,而限定这个名字可用性的代码范围就是这名字的作用域。

生命周期
变量的生命周期是指变量的创建到变量的销毁的一段时间。

  1. 局部变量的生命周期是:进入作用域生命走起开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。
    举个例子:
#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;
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值