第 9 章 指针
9.2 变量的指针和指向变量的指针变量
9.2.3 指针变量作为函数参数
1 #include <stdio.h>
2 void swap(int *pdest1, int *pdest2)
3 {
4 int temp;
5 temp = *pdest1;
6 *pdest1 = *pdest2;
7 *pdest2 = temp;
8 }
9 int main()
10 {
11 int a = 5,b = 6;
12 int *p1,*p2;
13 p1 = &a;
14 p2 = &b;
15 printf("a = %d,b = %d\n",a,b);
16 if(a<b)
17 {
18 swap(p1,p2);
19 }
20 printf("a = %d,b = %d\n",a,b);
21 }
这个范例并不复杂,这里以指针变量作为实参,传递到swap函数(swap函数用于交换两个变量的值),实参是两个指针变量p1和p2,swap函数函数中对应的两个形参是pdest1和pdest2,而在swap函数中,实际上就是把a的值赋给中间变量temp,把b的值赋给a,然后再把中间变量temp的值赋给b,从而实现a和b两个变量值的交换。
一般来说,#include命令主要用来包含一些.h头文件。在这段程序的第一行,包含了标准头文件studio.h,这主要是因为主程序中用到了printf函数。
1 #include <stdio.h> // 用<>将文件包含起来
1 #include “stdio.h” // 用“”将文件包含起来
用尖括号<>括起来的头文件被#include时,表示让编译器去系统目录中寻找stdio.h,所以一些系统提供的标准头文件在#include时都应该使用尖括号<>括起来。而用双引号“”包含起来的头文件被#include时,编译器会首先在当前源代码文件所在目录下寻找,如果找不到,再到系统目录中寻找,所以,通常开发者自己写的一些头文件,在被#include包含进来时,往往使用双引号包含起来。
第 10 章 结构体与共用体
C语言中的结构体是一种数据类型,确切地说是将多种不同类型的数据组合起来构成的一个新数据类型,这个新数据类型能够表达更丰富、更全面的信息。结构体成员数据可以是任意一种C的数据类型,也可以是其他结构体。
结构体是学习C++部分中最重要的的概念“类”的基础,所以必须要学好。
10.1 结构体类型定义,结构体变量的定义、引用与初始化
10.1.1 定义一个结构体类型
struct student //定义一个结构体类型 student
{
int num; //学好
char name[100]; //姓名
int sex; //性别 0:女生,1:男生
int age; //年龄
char address[100]; //地址
}; // 这里的分号,不要忘记
10.1.2 定义一个结构体类型变量
(1)在已经定义了student结构体类型的情况下,
struct student s1,s2;
(2)还可以在定义结构体类型的同时,定义变量,
struct student //定义一个结构体类型 student
{
int num; //学好
char name[100]; //姓名
int sex; //性别 0:女生,1:男生
int age; //年龄
char address[100]; //地址
}s1,s2; //多个变量名之间用逗号隔开
(3)直接定义结构体类型变量, 不定义结构体名,
struct
{
int num; //学好
char name[100]; //姓名
int sex; //性别 0:女生,1:男生
int age; //年龄
char address[100]; //地址
}s1,s2;