Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

C语言的基本概述一(程序与语言)

 Share


NedK7

Recommended Posts

 

      在进行阐述之前,我们必须得先明白一个问题,就是C语言是什么。它是一门高级语言,这使得我们不必再用数字码表示指令,使得我们的指令可以更好的体现我们的想法,然后也不需要去考虑机器它怎么执行我们的代码的,我们要做的,仅仅是让计算机得出我们想要的结果。然后,它是一门面向过程的语言,也就是说它是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

      我们使用C语言,那么它有那些特点呢?它具有:

1、语言简洁、紧凑、使用方便、灵活

2、运算符丰富

3、数据类型丰富

4、具有结构化控制语句

5、语法限制不太严格,程序设计自由度大

6、C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件操作

7、可移植性好

8、生成目标代码质量高,程序执行效率高等.

     上面说明了C语言的八个特性。我们对其进行相应的阐述,

较之于之前的语言,其的可读性有了较大的提升,对于运算符方面,可以直接参考这个网站中说明的,也就是说包含了算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符。这里不再赘述:

C 运算符 | 菜鸟教程 (runoob.com)

其中需要进行说明的是位运算符中的取反运算、左移、右移。取反运算是说我们输入一个数字,将它的二进制进行取反,也就是1变成0.

数据类型丰富

它目前拥有的数据类型可以概括为:基本类型、枚举类型、空类型、派生类型。其中的基本类型就是我们常用的整数类型和浮点类型,派生类型有指针类型、数组类型、结构体类型、共用体类型以及函数类型。

整数类型:包含了int,long,short,char.。浮点数类型:float,double

枚举类型:枚举类型比较特别,它是声明符号名称来表示整形常量。例如我们常用的一周,将周一设为0,周二设为1这样。例子如下:

#include<stdio.h>
int main(void)
{
	enum week{monday,tuesday,wednesday,thirsday,friday,saturday,sunday
	};
	int day;
	for(day=monday;day<=sunday;day++)
	{
		printf("%d\n", day);
	}
	return 0;
}	

空类型:这个用的比较少

指针类型:这个可以参照我的另外一篇博客:

https://www.cnblogs.com/TomHard/p/15921041.html

数组类型:这个可以参照我另外一篇博客:

https://www.cnblogs.com/TomHard/p/16049387.html

结构体类型:这个可以参照我另外一篇博客:

https://www.cnblogs.com/TomHard/p/16049482.html

共用体类型:这个可以参照我另外一篇博客:

https://www.cnblogs.com/TomHard/p/16054300.html

函数类型:这个可以参照下面的链接:

https://www.runoob.com/cprogramming/c-functions.html

具有结构化控制语句:具体可以参考我的一篇博客

https://www.cnblogs.com/TomHard/p/16042397.html

说到结构化控制语句,我们首先得知道C语言有五种常用的语句,包括了:

1、表达式语句,就像12;c=12;这样的语句

2、流程控制语句

(包括结构化语句和非结构化语句)

结构化语句包括条件语句和循环语句

非结构化语句包括限定向语句和非限定转向语句

3、函数调用语句

4、空语句

5、复合语句

对文件的处理:具体参照这个链接里面的讲述:

https://www.runoob.com/cprogramming/c-file-io.html

     C语言中使用的两种注释方法:

1、//

2、/* */

C语言程序的结构特点

1、一个程序包含一个或多个源程序文件组成。

     一个源程序文件可以包含3个部分:预处理指令(比方说#include<stdlib.h>、全局声明、函数定义

2、函数是C程序的主要组成成分。

    如果我们敲代码多的话,我们会发现一个有意思的现象,就是一个程序中一般都包含着一个main函数,如果这个函数存在的话,那么这个函数就是程序的主要部分(是说程序从这开始调用其他函数,进行程序运行)。注意,我说的是一般,有的时候,如果这个项目很大,会存在源文件中没有main函数地方情况,这个需要注意。

3、一个函数包含两个部分

     函数是完成特定任务的独立程序代码单元。它包含两个部分,函数头和函数体,函数体由声明部分和执行语句组成

4、程序总是从main函数开始执行,从main函数结束

5、程序中对计算机的操作都是由函数中的C语句完成的

6、在每个数据声明和语句最后必须有一个分号

7、程序中应该包含注释

      我们现在知道C语言程序的特点了,那么我们需要知道一个问题,就是程序是什么?程序=数据结构+算法+程序设计方法+语言工具和环境。

看到这句话我们可能就懵掉了,数据结构是什么?算法又是什么?数据结构是说在程序中需要指定数据的类型和数据的组织形式。算法是说操作步骤,计算机算法可以分为数值运算算法(求解数值)和非数值运算算法(事务管理领域)。

算法的特性:

1、有穷性:一个算法应包含有限的操作步骤而不是无限的。

2、确定性:算法中每一个操作步骤应当是确定的,而不能是模糊的。

3、由零个或多个输入

4、有一个或斗个输出

5、有效性:算法中每一个步骤应该能够有效地执行,并得到确定的结果

如何表示一个算法?主要表示方法为:伪代码和流程图。其中伪代码是指我们可以通过使用一种介于自然语言和计算机语言之间的文字符号来描述算法,伪代码在编译原理中常常使用来进行表示系统中代码之间的逻辑。流程图实际上就是由几个图像进行算法的描述。包括的图像有起止框、输入输出框、判断框、处理框、流程线、连接点这些。可以参考这篇文章里面的讲述

http://c.biancheng.net/cpp/html/1722.html

C语言的三种基本结构为顺序结构、选择结构、循环结构。这三种基本结构的特点为只有一个入口,只有一个出口,结构内的每一部分都可以被执行,结构内不存在“死循环”。当然了,还有一种绘制流程图的方法,就是用N-S流程图表示算法,可以参考这篇文章:

http://c.biancheng.net/cpp/html/1723.html

 结构化程序设计方法:自顶向下,逐步细化,模块话设计,结构化编码。

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...