Welcome 微信登录

首页 / 软件开发 / C语言

C语言学习教程第四章-数组(5)

C语言学习教程第四章-数组(5)

C语言学习教程第四章-数组(5)2007-05-03用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志""。上面的数组c在内存中的实际存放情况为: C program`"是由C编译系统自动加上的。由于采用了`"标志,所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。在采用字符串方式后,字符数组的输入输出将变得简单方便。 除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的...
C语言学习教程第四章-数组(6)

C语言学习教程第四章-数组(6)

C语言学习教程第四章-数组(6)2007-05-03字符串常用函数C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。 下面介绍几个最常用的字符串函数。1.字符串输出函数 puts 格式: puts (字...
C语言学习教程第四章-数组(7)

C语言学习教程第四章-数组(7)

C语言学习教程第四章-数组(7)2007-05-03程序举例把一个整数按大小顺序插入已排好序的数组中。 为了把一个数按大小插入已排好序的数组中, 应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的, 则可把欲插入的数与数组中各数逐个比较, 当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。main(){...
C语言学习教程第五章-函数(1)

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

C语言学习教程第五章-函数(1)2007-05-03概述在第一章中已经介绍过,C源程序是由函数组成的。 虽然在前面各章的程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块...
C语言学习教程第五章-函数(2)

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

C语言学习教程第五章-函数(2)2007-05-03函数定义的一般形式1.无参函数的一般形式 类型说明符 函数名() { 类型说明 语句 }其中类型说明符和函数名称为函数头。 类型说明符指明了本函数的类型,函数的类型实际上是函数返回值的类型。 该类型说明符与第二章介绍的各种说明符相同。 函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。{} 中的内容称为函数体。在函数体中也有类型说明, 这是对函数体内部所用到的变量的类型说明。在很...
C语言学习教程第五章-函数(3)

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

C语言学习教程第五章-函数(3)2007-05-03二、函数的值函数的值是指函数被调用之后, 执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值,调用例5.1的max函数取得的最大数等。对函数的值(或称函数返回值)有以下一些说明:1. 函数的值只能通过return语句返回主调函数。return 语句的一般形式为: return 表达式; 或者为:return (表达式);该语句的功能是计算表达式的值,并返回给主调函数。 在函数中允许...
C语言学习教程第五章-函数(4)

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

C语言学习教程第五章-函数(4)2007-05-03二、数组名作为函数参数用数组名作函数参数与用数组元素作实参有几点不同:1. 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此, 并不要求函数的形参也是下标变量。 换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时, 则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时...
C语言学习教程第五章-函数(5)

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

C语言学习教程第五章-函数(5)2007-05-03函数的嵌套调用C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。 但是C语言允许在一个函数的定义中出现对另一个函数的调用。 这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。 这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图5.2。图5.2表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b ...
C语言学习教程第五章-函数(6)

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

C语言学习教程第五章-函数(6)2007-05-03函数的递归调用一个函数在它的函数体内调用它自身称为递归调用。 这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中, 主调函数又是被调函数。执行递归函数将反复调用其自身。 每调用一次就进入新的一层。例如有函数f如下:int f (int x){int y;z=f(y);return z;}这个函数是一个递归函数。 但是运行该函数将无休止地调用其自身,这当然是不正确的。为了防止递归调用无终止地进行,...
C语言学习教程第五章-函数(7)

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

C语言学习教程第五章-函数(7)2007-05-03一、局部变量局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。例如:int f1(int a) /*函数f1*/{int b,c; ……}a,b,c作用域int f2(int x) /*函数f2*/{int y,z; }x,y,z作用域main(){int m,n; }m,n作用域 在函数f1内定义了三个变量,a...
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...
<< 1 2 3 4 5 6 7 8 9 10 >>