-
2014-08-17
一个数组的元素值为指针则是指针数组。 指针数组是一组有序的指针的集合。 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。指针数组说明的一般形...
-
2014-08-17
前面我们介绍过,所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数。定义指针型函数的一般形式为...
-
2014-08-17
在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函...
-
2014-08-17
用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。在使用时应注意以下几个问题: 1) 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符...
-
2014-08-17
在C语言中,可以用两种方法访问一个字符串。 用字符数组存放一个字符串,然后输出该字符串。 【例10-24】 复制纯文本新窗口 main () { char string []= I love China ! ; printf ( %s \n , string ); }...
-
2014-08-17
本小节以二维数组为例介绍多维数组的指针变量。 多维数组的地址 设有整型二维数组a[3][4]如下: 0 1 2 3 4 5 6 7 8 9 10 11 它的定义为: int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}} 设数组a的首地址...
-
2014-08-17
数组名可以作函数的实参和形参。如: 复制纯文本新窗口 main () { int array [ 10 ]; /* */ /* */ f ( array , 10 ); /* */ /* */ } f ( int arr [], int n ); { /* */ /* */ } main(){ int array[10]; /* */ /* */ f(array,10); /*...
-
2014-08-17
C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。 引入指针变量后,就可以用两种方法来访问数组元素了。 如果p的初值为a[0],则: p+i和a+i就是...
-
2014-08-17
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。 所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址...
-
2014-08-17
指针变量可以进行某些运算,但其运算的种类是有限的。它只能进行 赋值运算 和 部分算术运算 及 关系运算 。 指针运算符 指针运算符有两种: 取地址运算符():取地址运算符()是单目...
-
2014-08-17
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。 【例10-3】题目同【例10-2】,即输入的两个整数按大小顺序...
-
2014-08-17
变量的指针就是变量的地址。存放变量地址的变量是指针变量。 即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称...
-
2014-08-17
在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,...
-
2014-08-17
预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指...
-
2014-08-17
预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有三种形式,下面分别介...
-
2014-08-17
文件包含是C预处理程序的另一个重要功能。 文件包含命令行的一般形式为: #include 文件名 在前面我们已多次用此命令包含过库函数的头文件。例如: 复制纯文本新窗口 #include stdio....
-
2014-08-17
C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。 对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。 带参宏定义的一般形...
-
2014-08-17
在C语言源程序中允许用一个标识符来表示一个字符串,称为宏。 被定义为宏的标识符称为宏名。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换,这称为宏...
-
2014-08-16
动态存储方式与静态动态存储方式 前面已经介绍了,从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量。 从另一个角度,从变量值存在的作时间(即生存期)角度...
-
2014-08-16
在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。 这种变...
-
2014-08-16
数组可以作为函数的参数使用,进行数据传送。 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。 数组元...
-
2014-08-16
一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。 C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每...
-
2014-08-16
C语言中不允许作嵌套的函数定义。 因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数...
-
2014-08-16
前面已经说过,在程序中是通过对函数的调用来执行函数体的,其过程与其它语言的子程序调用相似。C语言中,函数调用的一般形式为: 函数名(实际参数表); 对无参函数调用时则无实...
-
2014-08-16
形式参数和实际参数 前面已经介绍过,函数的参数分为形参和实参两种。在本节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,...