【C语言】C语言从入门到精通第1章C语言概述

简介: 【C语言】C语言从入门到精通第1章C语言概述

一、C语言发展史


(一)程序语言简述

1、机器语言

       机器语言是低级语言,也称为二进制代码语言,由 0 和 1 组成的二进制数组成的一串指令来表达计算机操作的语言。特点:直接识别,不要进行翻译


2、汇编语言

       汇编语言是面向机器的程序设计语言,为了减轻使用机器语言编程的痛苦,用英文字母或符号串来代替机器语言的二进制码,汇编语言比机器语言更加便于阅读和理解,但是依赖计算机硬件,程序的可读性和可移植性都不是很好


3、高级语言

       高级语言主要是相对于汇编语言,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序,编写的程序称之为源程序


(二)C语言的历史

       C语言是在BCPL语言(简称 B语言)的基础上发展和完善起来的,B语言是由 UNIX 的研发者丹尼斯·里奇和肯·汤普逊于1970年研发出来的,20世纪70年代初期,AT&T Bell 实验室的程序员丹尼斯·里奇第一次把B语言改为C语言。UNIX 成为第一个不是用汇编语言编写的主流操作系统


       1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,于1983年颁布了第一个C语言草案(83ANSI C),后来于1987年又颁布了另一个C语言标准草案(87ANSI C),最新的C语言标准C99于1999年颁布,并在2000年3月被ANSI采用。但由于未得到主流编译器厂家的支持,C99并未得到广泛使用


       尽管C语言是在大型商业机构和学术界的研究实验室研发的,但是当开发者们为第一台个人计算机提供 C 编译系统之后,C语言就得以广泛传播,并为大多数程序员所接受。对MS-DOS操作系统来说,系统软件和实用程序都是用C语言编写的。Windows操作系统大部分也是用C语言编写的


       C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点,可以广泛应用于不同的操作系统,如UNIX、MS-DOS、Microsoft Windows以Linux等


二、C语言的特点

(一)高效性

       从 C 语言的发展史可以看出它继承了低级语言的优点,产生了高效的代码,并具有友好的可读性和可编写性,一般情况下,C 语言生成的目标代码的执行效率只比汇编程序低 10%~20%


(二)灵活性

       可在原有语法基础上进行创造、复合,从而给程序员更多的想象和发挥空间


(三)功能丰富

       除了 C 语言中所具有的类型,还可以使用丰富的运算符和自定义的结构类型,来表达任何复杂的数据类型,来完成所需功能


(四)表达力强

       C 语言的语法形式与人们使用的语言形式相似,书写形式自由,结构规范,并只需简单的控制语句即可轻松控制程序流程


(五)移植性好

       C 程序在不同的操作系统下,只需要简单修改或者不修改即可进行跨平台的程序开发操作


三、一个简单的 C 程序

#include"stdio.h"
int main()
{
  printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
  return 0;                           /*程序返回0*/
}

(一)#include 指令

#include"stdio.h"

语句的功能是进行有关的预处理操作。include 称为文件包含命令,后面尖括号中的内容称为头部文件或首文件

(二)空行

       空格、空行、跳格并不会影响程序,但合理、恰当地使用空格、空行可以使程序更加规范,方便日后阅读和整理


(三)main 函数声明

{
  printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
  return 0;                           /*程序返回0*/
}

代码表示声明 main 函数为一个返回值,是整型的函数,其中 int 称为关键字。在函数中,这一部分称为函数头部分,每一个程序都有一个 main 函数,它是一个程序的入口部分,是从 main函数头开始执行的,进入 mian 函数中,执行 main 函数中的内容


(四)函数体

{
  printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
  return 0;                           /*程序返回0*/
}

一个函数有两个部分:函数头和函数体。代码中两个大括号构成了函数体,也称为函数的语句块


(五)执行语句

printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/

执行语句是函数体中要执行的动作内容,代码中的 printf 是产生格式化输出的函数,可以理解为向控制台进行输出文字或符号,括号中的内容称为函数的参数,其中“ \n ”表示换行,称之为转义字符

(六) return 语句

return 0; 

此语句使 main 函数终止运行,并向操作系统返回一个整型常量0,在此处可将 return 理解成 main 函数的结束标志


(七)代码注释

printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
return 0;                           /*程序返回0*/

代码后的解释描述称为代码的注释,是用来对代码进行解释说明,以方便自己或他人阅读源程序时快速理解程序代码的含义和设计思想


四、一个完整的C程序

#include "stdafx.h"
#include<stdio.h>           /*包含头文件*/
#define Height 10           /*定义常量*/
int calculate(int Long, int Width);     /*函数声明*/
int main()                /*主函数main*/
{
  int m_Long;           /*定义整型变量,表示长度*/
  int m_Width;            /*定义整型变量,表示宽度*/
  int result;             /*定义整型变量,表示长方体的体积*/
  printf("长方形的高度为:%d\n",Height);  /*显示提示*/
  printf("请输入长度\n");        /*显示提示*/
  scanf("%d",&m_Long);        /*输入长方体的长度*/
  printf("请输入宽度\n");        /*显示提示*/
  scanf("%d",&m_Width);       /*输入长方体的宽度*/
  result=calculate(m_Long,m_Width);   /*调用函数,计算体积*/
  printf("长方体的体积是:");     /*显示提示*/
  printf("%d\n",result);          /*输出体积大小*/
  return 0;             /*返回整型0*/
}
int calculate(int Long, int Width)        /*定义计算体积函数*/
{
  int result =Long*Width*Height;      /*具体计算体积*/
  return result;            /*将计算的体积结果返回*/
}


178950441a3d4eab824ca1cce0f44114.png


(一)定义常量


#define Height 10           /*定义常量*/

使用 #define 定义一个符号 Height,并指定这个符号代表的值为10


(二)函数声明

int calculate(int Long, int Width);     /*函数声明*/

声明 calculate 函数,那么在后面会有 calculate 函数的具体定义内容,这样程序中出现 calculate 函数,程序会根据 calculate 函数的定义执行有关操作

(三)定义变量

int m_Long;           /*定义整型变量,表示长度*/
int m_Width;            /*定义整型变量,表示宽度*/
int result;             /*定义整型变量,表示长方体的体积*/

在 C 语言中,在使用变量之前必须进行定义,之后编译器会根据变量的类型为变量分配内存空间。变量的作用就是储存数值,用变量进行计算


(四)输入语句

scanf("%d",&m_Long);        /*输入长方体的长度*/

在 C 语言中 scanf 函数是用来接收键盘输入的内容,并将输入的内容保存在相应的变量中,在 scanf 函数中,m_Long 是之前定义的整型变量,其作用是储存输入的信息内容,其中“ & ”符号表示取地址运算符


(五)数学运算语句

int result =Long*Width*Height;      /*具体计算体积*/

在 calculate 函数体中,其功能是将三个变量相乘得到结果保存在 result 变量中,“ * ”代表乘法运算符


程序执行过程总结:


(1)包含程序所需要的头文件


(2)定义一个常量Height,其值代表为10


(3)对calculate函数进行声明


(4)进入main函数,程序开始执行


(5)在main函数中,首先定义3个整型变量,3个变量分别代表着长方体的长度、宽度和长方体的体积


(6)显示提示文字,然后根据显示的文字输入有关的数据


(7)当将长方体的长度和宽度都输入之后会调用calculate函数,计算长方体的体积


(8)定义calculate函数的位置在main函数的下面,在calculate函数体内将计算长方体体积的结构进行返回


(9)在main函数中,result变量得到了calculate函数返回的结果


(10)通过输出语句将其中长方体的体积显示出来


(11)程序结束


五、C 语言程序格式

(一) 主函数 main

       C 程序都是从 main 函数开始执行的,main 函数所在的位置没有关系


(二)C程序整体是由函数构成的

       main 是程序中的主函数,在程序中是可以定义其他函数的,在这些定义函数中进行特殊的操作,使得函数完成特定的功能


(三)函数体的内容在“{}”中

       C 语言使用一对大括号来表示程序的结构层次,注意左右大括号要对应使用


(四)每一个执行语句都以“ ; ”结尾

       执行语句后有“ ; ”(分号)作为语句结束的标志


(五)英文字符大小不通用

       同一大小写字母意义不同,关键字和标准库函数名必须小写


(六)空格、空行的使用

       其作用是增加程序的可读性,使得程序代码位置合理、美观


六、开发环境

       书中介绍了两种学习开发 C语言的开发工具:一个是 Turbo C 2.0 ,另一个是 Visual C++ 6.0,本人使用的VS 2022(Visual Studio 2022)


本人使用的是Visual Studio 2022(简称VS),VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,所写的目标代码适用于微软支持的所有平台,支持多种语言进行开发


【Visual Studio 2022】VS2022安装教程_vs2022专业版_空弦的编程小屋的博客-CSDN博客

https://blog.csdn.net/kxtxdy/article/details/126443067?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166621171216782391884210%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166621171216782391884210&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-126443067-null-null.142%5Ev59%5Enew_blog_pos_by_title,201%5Ev3%5Econtrol&utm_term=visual%20studio%202022%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187


相关文章
|
1月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
1月前
|
C语言
C语言中的math库概述
C语言中的math库概述
|
1月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
34 1
|
2月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
46 4
【C语言入门】初识C语言:掌握编程的基石
|
2月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
61 2
|
2月前
|
前端开发 C语言 C++
C语言入门02---环境搭建
C语言入门02---环境搭建
|
2月前
|
编译器 C语言 C++
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
|
3月前
|
存储 Web App开发 算法
c语言的简单入门
熟悉c语言(简单入门)
|
3月前
|
JavaScript C语言
|
3月前
|
存储 人工智能 Java