1、 简要写出C语言的主要特征,并以一个小程序为例,说明C语言的语法。

1、 简要写出C语言的主要特征,并以一个小程序为例,说明C语言的语法。,第1张

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行 *** 作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言运袭的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以猛陵函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

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

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行 *** 作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10%~20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种 *** 作系统, 如DOS、UNIX,也适用于多种机型。

编辑本段C源程序的结构特点:

1.一个C语言源程序可以由一个或多个源文件组成。

2.每个源文件可由一个或多个函数组成。

3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。

4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常枝悄戚应放在源文件或源程序的最前面。

5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。

6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

a.pc = p之前的语句都是起干扰作用,可以直接忽略。

且看a.pc = p之后,a.pc这个指针指向a.c,也就是结构提a的起始地址,

则有下图可以看到a.pc[0]到a.pc[7]所指向的内存如下

(注意32位编译器默认的4字节对齐):

+-----------------------------+

| a.c | // a.pc[0]

+-----------------------------+

|字节补齐 | // a.pc[1]

+-----------------------------+

|字节补齐 | // a.pc[2]

+-----------------------------+

|字节补齐 | // a.pc[3]

+-----------------------------+

| a.pc字节0 | // a.pc[4]

+-----------------------------+

| a.pc字节1 | // a.pc[5]

+-----------------------------+

| a.pc字节2 | // a.pc[6]

+-----------------------------+

| a.pc字节3 | // a.pc[7]

+-----------------------------+

因此,当对a.pc[4] 到 a.pc[7]赋值的时候,配升仿也改变了a.pc本身的值,使指针无效。

对无效指针的递应用可能但并不一定会导致程序崩溃。

因此我判断a.pc[4]或之笑简后语句可能会崩溃。

可以在对培纤每个a.pc[x]赋值语句之后,打印a.pc的值看指针是否被破坏:

printf("a.pc: %p\n", a.pc)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12468555.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存