C语言基础知识归纳

  • 格式:docx
  • 大小:39.73 KB
  • 文档页数:10

C语言基础知识归纳

C语言基础知识:

1.每个C程序都必须从主函数main()开始执行,并在main()函数中结束。

2.在C语言中,科学计数法表示为e,要求e前面必须有数字,后面必须为整数。

3.单引号括起来的字符常量只能存放一个字符,C语言中没有字符串变量,只能用字符数组来存储字符串。

4.外部变量在编译时由系统分配永久的内存空间,因此外部变量的类型不是自动存储类别。

5.在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。

6.使用sizeof(int)可以计算int类型数据的字节数。

7.C语言运行时,首先系统检查语法的正误,再运行程序的语法。可以在一个函数中嵌套一个函数,但不能在一个函数中定义一个函数。只有在函数外部定义的函数才是外部函数。C语言的子程序有过程和函数两种。

8.预处理命令可以放在源文件的任何位置,但惯上放在前面。在源文件中可以有多条预处理命令,但一行只能写一条。宏名的大写只是惯性的表示。宏替换不仅不占用运行时间还不分配内存空间。

9.feof函数的作用是检查文件是否结束,当结束时返回非零值,否则返回零。

10.定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。

11.在赋值表达式中,赋值运算符“=”右侧不能为表达式。在求余运算符中,两侧都必须为整型。在强制类型转换时,类型名应用括号括起来。

12.静态局部变量只有当程序结束后,其值才会被释放。

13.当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。

14.算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同。算法正确的程序最终一定会结束。

15.在C语言中,预处理命令都以“#”开头。预处理的作用是实现宏定义和条件编译。常用的预处理命令之一是#include。

16.当数组元素的下标超出了定义的下标范围时,系统不会给出“下标越界”的字样,而是得出错误的答案。因此在编程时务必检查下标是否越界。

17.共用体变量不能作为函数的参数,也不能使函数带回共用体变量。

18.指向函数的指针变量的定义形式为:数据类型(*指针变量)()。因此其为指向函数的指针变量。

19.用C语言编写的代码程序是源程序,只有通过编译、连接才能运行。

必须是常量表达式,不能是变量或者表达式。

34.指针变量存储的是地址,而不是实际的值,因此在使用指针变量时需要注意解引用操作,即使用*运算符获取指针所指向的值。

35.使用结构体可以将多个不同类型的变量组合在一起,方便进行操作和传递,同时也可以通过定义指向结构体的指针来实现动态内存分配和操作。

36.使用递归函数可以简化代码,但是也需要注意递归深度和性能问题,避免出现栈溢出或者过多的函数调用导致程序运行缓慢。

37.在编写程序时,应该注重代码的可读性和可维护性,避免出现过于复杂或者难以理解的代码,同时也应该注重代码的注释和文档,方便其他人理解和修改代码。 38.使用预处理指令可以在编译前进行一些操作,例如定义常量、包含头文件、进行条件编译等,可以提高程序的灵活性和可维护性。

39.在编写程序时,应该注重错误处理和异常处理,避免出现程序崩溃或者数据丢失等问题,同时也应该注重安全性,避免出现安全漏洞导致数据泄露或者攻击。

40.在使用库函数时,应该注意库函数的参数和返回值,避免出现类型不匹配或者使用不当导致程序出错,同时也应该了解库函数的实现原理和限制,避免出现性能问题或者不可预期的行为。

switch语句内部使用,不能在函数内部单独使用。

48.在C语言中,结构体是由一组不同类型的数据组成的自定义数据

类型,可以包含各种类型的数据,如整型、字符型、数组、指针等。

结构体变量的定义形式为:struct 结构体名 结构体变量名;在使

用结构体变量时,可使用“.”运算符来访问结构体中的各个成员。 49.C语言中,数组下标从0开始,最大下标为数组长度减1.数组

的初始化可以在定义时进行,也可以在定义后通过赋值进行。如

果没有初始化,则数组中的元素默认为0.

50.C语言中,指针是一个变量,其值为另一个变量的地址。指针

变量的定义形式为:数据类型 *指针变量名;指针变量必须先进

行初始化,才能使用。指针变量的值可以通过&运算符获取变量的

地址,也可以将一个指针变量赋值给另一个指针变量。

型名”,使得程序更易于阅读和理解。在定义一个新的类型名时,可以使用typedef关键字,将已有的类型名定义为新类型名,从而使得程序更加易读易懂。

59.在C语言中,变量必须先定义后使用。在定义变量时,可以指定变量的类型和名称,也可以不指定类型而只指定名称,此时编译器会根据变量的初始值自动推导出变量的类型。

60.C语言中的数组是一种存储相同类型数据的集合,可以通过下标来访问数组中的元素。数组的下标从0开始,最大下标为数组长度减1.在定义数组时,需要指定数组的类型、名称和长度。

数组只有一个元素,可以用单引号括起来表示。

72.指针变量是一种特殊的变量,它存储的是另一个变量的内存

地址。指针变量必须先定义再使用,否则会引起编译错误。

指针变量可以通过取地址符&获取普通变量的地址,也可以通过

解引用符*获取指针变量所指向的变量的值。

73.结构体是一种自定义的数据类型,它可以包含多个不同类型的

成员变量,这些成员变量可以是基本数据类型、数组、指针、

甚至是其他结构体。结构体变量可以通过点号.访问其成员变

量的值。

74.typedef关键字可以用来给已有的数据类型起一个新的名字。

这样可以使代码更加简洁易懂。例如,可以用typedef定义一个 新的数据类型名为Student,表示一个学生的信息,包括姓名、

年龄、性别等。

75.递归是一种函数调用自身的技术,它可以简化程序的编写过程。

但也容易引起死循环。在编写递归函数时,必须设置递归终止

条件,否则程序会一直递归下去,直到栈溢出。

76.动态内存分配是指在程序运行期间根据需要动态地分配内存。

可以使用malloc函数来分配一块指定大小的内存空间,并返回

该内存空间的首地址。使用完毕后,必须使用free函数来释放

该内存空间,否则会造成内存泄漏。

77.函数指针是一种指向函数的指针变量,可以将函数指针作为参

数传递给其他函数,也可以将函数指针作为返回值返回。使用函 数指针可以实现函数的动态调用,提高程序的灵活性和可扩展性。

78.文件是计算机中用来存储数据的一种数据结构,可以使用标准

I/O库中的函数来读写文件。文件可以分为文本文件和二进制文件。

其中文本文件是以ASCII码形式存储的,可以直接用文本编辑器

打开查看和编辑;而二进制文件则是以二进制形式存储的,不可

以直接查看和编辑,需要使用专门的工具进行处理。

79.异常处理是指在程序执行过程中出现错误或异常情况时,采

取相应的措施来避免程序崩溃或产生不良影响。C语言中可

以使用setjmp和longjmp函数来实现异常处理,也可以使用try、

catch、throw等关键字来实现异常处理,但这些关键字并不是 标准C语言的一部分,需要使用特定的编译器或库来支持。

原文已经非常简短,没有太多需要改写的空间,仅对一些词语进行了替换。

数组中没有存放结束标志'\0'。

这个问题可能会导致在使用字符串时出现一些奇怪的行为。为了避免这种情况,我们需要确保在数组的末尾添加一个'\0'。

如果我们不添加结束标志,程序可能会继续读取内存中的数据,直到遇到一个'\0'为止。这可能会导致程序崩溃或产生不可预测的结果。

因此,为了确保程序的稳定性,我们应该始终在使用字符串时添加结束标志。这可以通过在数组末尾添加'\0'来实现。