Welcome 微信登录

首页 / 软件开发 / C语言

C语言学习教程第五章-函数(8)

C语言学习教程第五章-函数(8)

C语言学习教程第五章-函数(8)2007-05-04变量的存储方式可分为“静态存储”和“动态存储”两种。 静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束。5.5.1节中介绍的全局变量即属于此类存储方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。 典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配, 调...
C语言学习教程第五章-函数(9)

C语言学习教程第五章-函数(9)

C语言学习教程第五章-函数(9)2007-05-04三、静态变量静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,前面已经介绍它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来, 一个变量可...
C语言学习教程第五章-函数(10)

C语言学习教程第五章-函数(10)

C语言学习教程第五章-函数(10)2007-05-04内部函数和外部函数函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:一、内部函数如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函 数。定义内部函数的一般形式是: static 类型说明符 函数名(形参表) 例如:static int...
C语言学习教程第六章-指针(1)

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

C语言学习教程第六章-指针(1)2007-05-04指针简介指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,...
C语言学习教程第六章-指针(2)

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

C语言学习教程第六章-指针(2)2007-05-042.指针变量的运算(1)赋值运算指针变量的赋值运算有以下几种形式:①指针变量初始化赋值,前面已作介绍。②把一个变量的地址赋予指向相同数据类型的指针变量。例如:int a,*pa;pa=&a; /*把整型变量a的地址赋予整型指针变量pa*/③把一个指针变量的值赋予指向相同类型变量的另一个指针变量。如:int a,*pa=&a,*pb;pb=pa; /*把a的地址赋予指针变量pb*/由于pa,...
C语言学习教程第六章-指针(3)

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

C语言学习教程第六章-指针(3)2007-05-04数组指针变量的说明和使用指向数组的指针变量称为数组指针变量。 在讨论数组指针变量的说明和使用之前,我们先明确几个关系。一个数组是由连续的一块内存单元组成的。 数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量) 组成的。每个数组元素按其类型不同占有几个连续的内存单元。 一个数组元素的首地址也是指它所占有的几个内存单元的首地址。 一个指针变量既可以指向一个数组,也可以指向一个数组元素,...
C语言学习教程第六章-指针(4)

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

C语言学习教程第六章-指针(4)2007-05-04二、多维数组的指针变量 把二维数组a 分解为一维数组a[0],a[1],a[2]之后,设p为指向二维数组的指针变量。可定义为: int (*p)[4] 它表示p是一个指针变量,它指向二维数组a 或指向第一个一维数组a[0],其值等于a,a[0],或&a[0][0]等。而p+i则指向一维数组a[i]。从前面的分析可得出*(p+i)+j是二维数组i行j 列的元素的地址,而*(*(p+i)+j)则是i行...
C语言学习教程第六章-指针(5)

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

C语言学习教程第六章-指针(5)2007-05-04使用字符串指针变量与字符数组的区别用字符数组和字符指针变量都可实现字符串的存储和运算。 但是两者是有区别的。在使用时应注意以下几个问题:1. 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。2. 对字符数组作初始化赋值,必须采用外部类型或静...
C语言学习教程第六章-指针(6)

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

C语言学习教程第六章-指针(6)2007-05-04指针数组说明的一般形式为: 类型说明符*数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型。例如: int *pa[3] 表示pa是一个指针数组,它有三个数组元素, 每个元素值都是一个指针,指向整型变量。通常可用一个指针数组来指向一个二维数组。 指针数组中的每个元素被赋予二维数组每一行的首地址, 因此也可理解为指向一个一维数组。图6—6表示了这种关系。int a[3][3]={1,2...
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语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范...
<< 31 32 33 34 35 36 37 38 39 40 >>