Welcome 微信登录

首页 / 软件开发 / C语言

C语言学习教程第六章-指针(7)

C语言学习教程第六章-指针(7)

C语言学习教程第六章-指针(7)2007-05-04main函数的参数前面介绍的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的...
C语言学习教程第六章-指针(8)

C语言学习教程第六章-指针(8)

C语言学习教程第六章-指针(8)2007-05-04本章小结1. 指针是C语言中一个重要的组成部分,使用指针编程有以下优点:(1)提高程序的编译效率和执行速度。(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。(3)可以实现动态的存储分配。(4)便于表示各种数据结构,编写高质量的程序。2. 指针的运算(1)取地址运算符&:求变量的地址(2)取内容运算符*:表示指针所指的变量(3)赋值运算·把变量地址赋...
C语言学习教程第七章-结构与联合(1)

C语言学习教程第七章-结构与联合(1)

C语言学习教程第七章-结构与联合(1)2007-05-04结构类型定义和结构变量说明在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它...
C语言学习教程第七章-结构与联合(2)

C语言学习教程第七章-结构与联合(2)

C语言学习教程第七章-结构与联合(2)2007-05-04在ANSI C中除了允许具有相同类型的结构变量相互赋值以外, 一般对结构变量的使用,包括赋值、输入、输出、 运算等都是通过结构变量的成员来实现的。表示结构变量成员的一般形式是: 结构变量名.成员名 例如:boy1.num 即第一个人的学号 boy2.sex 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如:boy1.birthday.month 即第一个人出生的月份...
C语言学习教程第七章-结构与联合(3)

C语言学习教程第七章-结构与联合(3)

C语言学习教程第七章-结构与联合(3)2007-05-04结构数组数组的元素也可以是结构类型的。 因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。 在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。 结构数组的定义方法和结构变量相似,只需说明它为数组类型即可。例如: struct stu{int num;char *name;char sex;float score;}...
C语言学习教程第七章-结构与联合(4)

C语言学习教程第七章-结构与联合(4)

C语言学习教程第七章-结构与联合(4)2007-05-04这三种用于表示结构成员的形式是完全等效的。结构数组指针变量结构指针变量可以指向一个结构数组, 这时结构指针变量的值是整个结构数组的首地址。 结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。设ps为指向结构数组的指针变量,则ps也指向该结构数组的0号元素,ps+1指向1号元素,ps+i则指向i号元素。 这与普通数组的情况是一致的。[例7.7]用指针变量输出结构数组...
C语言学习教程第七章-结构与联合(5)

C语言学习教程第七章-结构与联合(5)

C语言学习教程第七章-结构与联合(5)2007-05-04topoic=动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的, 在整个程序中固定不变。C语言中不允许动态数组类型。例如: int n;scanf("%d",&n);int a[n]; 用变量表示长度,想对数组的大小作动态说明, 这是错误的。但是在实际的编程中,往往会发生这种情况, 即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题, 用数组的办...
C语言学习教程第七章-结构与联合(6)

C语言学习教程第七章-结构与联合(6)

C语言学习教程第七章-结构与联合(6)2007-05-04creat函数用于建立一个有n个结点的链表,它是一个指针函数,它返回的指针指向stu结构。在creat函数内定义了三个stu结构的指针变量。head为头指针,pf 为指向两相邻结点的前一结点的指针变量。pb为后一结点的指针变量。在for语句内,用malloc函数建立长度与stu长度相等的空间作为一结点,首地址赋予pb。然后输入结点数据。如果当前结点为第一结点(i==0),则把pb值 (该结点指针)赋...
C语言学习教程第七章-结构与联合(8)

C语言学习教程第七章-结构与联合(8)

C语言学习教程第七章-结构与联合(8)2007-05-04一、联合的定义定义一个联合类型的一般形式为: union 联合名 { 成员表 };成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名 成员名的命名应符合标识符的规定。例如: union perdata{int class;char office[10];};定义了一个名为perdata的联合类型,它含有两个成员,一个为整型,成员名为class;另一个为字符数组,数组名为office。联合定...
C语言学习教程第八章-枚举、位运算(1)

C语言学习教程第八章-枚举、位运算(1)

C语言学习教程第八章-枚举、位运算(1)2007-05-04枚举在实际问题中, 有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然是不妥当的。 为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范...
C语言学习教程第八章-枚举、位运算(2)

C语言学习教程第八章-枚举、位运算(2)

C语言学习教程第八章-枚举、位运算(2)2007-05-04枚举类型变量的赋值和使用枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。2. 枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1, …,sat值为6。m...
C语言学习教程第八章-枚举、位运算(3)

C语言学习教程第八章-枚举、位运算(3)

C语言学习教程第八章-枚举、位运算(3)2007-05-04位运算前面介绍的各种运算都是以字节作为最基本位进行的。 但在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。一、位运算符C语言提供了六种位运算符:& 按位与| 按位或^ 按位异或~ 取反<< 左移>> 右移1. 按位与运算 按位与运算符"&"是双目运算符。其...
C语言学习教程第八章-枚举、位运算(4)

C语言学习教程第八章-枚举、位运算(4)

C语言学习教程第八章-枚举、位运算(4)2007-05-04位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,...
C语言学习教程第九章-预处理(1)

C语言学习教程第九章-预处理(1)

C语言学习教程第九章-预处理(1)2007-05-04预处理概述在前面各章中,已多次使用过以“#”号开头的预处理命令。如包含命令# include,宏定义命令# define等。在源程序中这些命令都放在函数之外, 而且一般都放在源文件的前面,它们称为预处理部分。所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是C语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统将自动引用预...
C语言学习教程第九章-预处理(2)

C语言学习教程第九章-预处理(2)

C语言学习教程第九章-预处理(2)2007-05-04带参宏定义C语言允许宏带有参数。在宏定义中的参数称为形式参数, 在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开, 而且要用实参去代换形参。带参宏定义的一般形式为: #define 宏名(形参表) 字符串 在字符串中含有各个形参。带参宏调用的一般形式为: 宏名(实参表); 例如: #define M(y) y*y+3*y /*宏定义*/:k=M(5); /*宏调用*/: 在宏调用时,用...
C语言学习教程第九章-预处理(3)

C语言学习教程第九章-预处理(3)

C语言学习教程第九章-预处理(3)2007-05-04文件包含 文件包含是C预处理程序的另一个重要功能。文件包含命令行的一般形式为: #include"文件名" 在前面我们已多次用此命令包含过库函数的头文件。例如: #include"stdio.h"#include"math.h" 文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行, 从而把指定的文件和当前的源程序文件连成一个源文件。在...
C语言学习教程第九章-预处理(4)

C语言学习教程第九章-预处理(4)

C语言学习教程第九章-预处理(4)2007-05-042. 第二种形式: #ifndef 标识符 程序段1 #else 程序段2 #endif 与第一种形式的区别是将“ifdef”改为“ifndef”。它的功能是,如果标识符未被#define命令定义过则对程序段1进行编译, 否则对程序段2进行编译。这与第一种形式的功能正相反。 3. 第三种形式: #if 常量表达式 程序段1 #else 程序段2 #endi...
C语言学习教程第十章-文件(1)

C语言学习教程第十章-文件(1)

C语言学习教程第十章-文件(1)2007-05-04文件文件的基本概念所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。普通文件是指驻留在磁盘或其它外部...
<< 1 2 3 4 5 6 7 8 9 10 >>