for 语句的运行过程如图3.10 所示。下面给出应用最广泛、也最容易理解的for 语句的一般形式:图3.10for 循环执行流程图用for 循环结构来计算1+2+3+…“表达式1”通常用于循环变量赋初值,如果省略,表示不对循环变量赋初值或者已经把赋初值语句放在了for 语句前面。......
2023-10-21
在数组一章中,曾介绍过数组的长度是预先定义的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:
用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据。对于这种问题,用数组的办法很难解决。因此,C语言提供内存管理函数,可以按需要动态分配内存空间,也可以把不再使用的空间收回。常用内存管理函数有3 个。
1.分配内存空间函数malloc
调用格式:
功能:在内存的动态存储区中分配一块长度为“size”字节的连续区域,“size”是一个无符号数。函数的返回值为该区域的首地址。“类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针。例如:
表示分配100 个字节大小的单元,并强制转换为字符数组类型,函数的返回值为指向该字符数组的指针,把该指针赋予指针变量pc。
2.分配内存空间函数calloc
调用格式:
功能:在内存动态存储区中分配n 块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。函数calloc 与malloc 的区别仅在于一次可以分配n 块区域。例如:(www.chuimin.cn)
其中的sizeof(struct stu)是求stu 的结构长度。因此该语句的意思是:按stu 的长度分配2 块连续区域,强制转换为stu 类型,并把其首地址赋予指针变量ps。
3.释放内存空间函数free
调用格式:
功能:释放ptr 所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区是由函数malloc 或calloc分配的。
【例7.8】分配一块区域,输入一个学生数据。程序如下:
程序运行结果如图7.9 所示。
图7.9 程序运行结果
说明:这里定义了stu 结构,定义了stu 类型指针变量ps。然后分配一块stu 结构的内存区,并把首地址赋予ps,使ps 指向该区域。再以ps 作为指向结构的指针变量对各成员赋值,并用printf 输出各成员值。最后用free 函数释放ps 指向的内存空间。整个程序包含了申请内存空间、使用内存空间、释放内存空间三个步骤,实现了存储空间的动态分配与管理。
有关C语言程序设计实用教程的文章
for 语句的运行过程如图3.10 所示。下面给出应用最广泛、也最容易理解的for 语句的一般形式:图3.10for 循环执行流程图用for 循环结构来计算1+2+3+…“表达式1”通常用于循环变量赋初值,如果省略,表示不对循环变量赋初值或者已经把赋初值语句放在了for 语句前面。......
2023-10-21
在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2023-10-21
在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2023-10-21
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
在一个C 程序中,有且只能有一个名为main 的函数,该函数称为主函数。程序执行始终是始于主函数,结束于主函数。C 程序中的每个语句都是以分号(;)作为语句结束符的。......
2023-10-21
一个指针变量用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。有了结构体指针变量,就能方便地访问结构体变量的各个成员。下面通过例子来说明结构体指针变量的具体说明和使用方法。图7.6程序运行结果说明:程序定义了一个结构stu,定义了stu 类型结构体变量boy1,并初始化赋值,还定义了一个指向stu 类型结构的指针变量pstu。......
2023-10-21
相关推荐