C语言第十一章课件

合集下载

C语言第11章精品PPT课件

C语言第11章精品PPT课件

11.1 文件的概述
12
11.1.2 文件的打开与关闭
1. 文件打开函数fopen( )
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
函数功能:
按指定的文件使用方式打开指定的文件。 若文件打开成功,为该文件分配一个文件缓冲区和一个 FILE类型变量,返回一个FILE类型指针; 若文件打开失败,返回NULL。
设备文件
在C语言中,“文件”的概念被进一步扩大, 把每台与主机相连的输入输出设备都看作是一个 文件。即把实际的物理设备抽象为逻辑文件,它 们被称为设备文件。
对外部设备的输入输出就是对设备文件的 读写。
2021/2/21
11.1 文件的概述
5
11.1.1 文件和文件指针
2. 文件的种类
按文件存储数据的形式
1
C 语言程序设计
第11章 文 件
计算机科学系
第11章 文件
2
11.1 文件的概念 11.2 文本文件的读写 11.3 二进制文件的读写
2021/2/21
11.1 文件的概述
3
11.1.1 文件和文件指针
1. 什么是文件
文件:存储在外部存储介质上相关数据的集合。
例如:程序文件中保存着程序,数据文件中保存着数据。
因此对uunnss于iiggnn每eedd 个cha使r 用*ics中utrepm的;p; 磁//**盘CTue文rmrpeo件nrta必rayc须t*i/v先e p定oin义ter一*/ 个FILsEho类rt型的文件t指oke针n;变量/* 并Use指d f向or此va变lid量ity。checking */

C语言PPT教程第十一章

C语言PPT教程第十一章
足以保存这一组数据 • 在内存中开辟空间,使用的方法:声明变量 • 声明变量时的数据类型决定了空间的大小 • 没有哪个基本数据类型所声明的变量可以保
存一组相关数据(一组中数据类型不同) • 解决办法——自己创建数据类型 • 该数据类型一定由多个基本数据类型组成
5
自己创建数据类型——声明结构体
•一般形式:
• 每插入一个数,需要同前面的其它数依次比 较,选择合适位置,所以要用循环
char author[20];
float price;};
int edn;
struct cat book1;
float price;
strcpy(book1.bk_name,“人月神 };
话”);
struct cat book1={“人月神
strcpy(Book1.author,“Brooks”); 话”,“Brooks”,2,30.00};
temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
第2、3、4次将最小值置顶,该如何写?
25
将最小值置顶
for( j=4 ; j>0; j-- ) if(a [ j ]<a [ j -1]) { temp=a [ j ]; a [ j ]=a [ j-1]; a [ j -1]=temp; }
• 示例: struct unit
{
char ch;
int i; };
struct unit series [3] =
{ {'a', 100}, {'b', 200},
{'c', 300}
19
};
结构体指针

C语言程序设计(姜学峰版)PPT课件第十一章

C语言程序设计(姜学峰版)PPT课件第十一章

8
5)定义结构体类型仅仅声明了一种数据结构,编译 系统不会为类型分配存储空间的;此时可用已定 义的结构体类型去定义结构体变量或数组,编译 系统将为结构体变量分配存储空间;
9
2. 定义结构体类型的变量 有三种方法: 1)先定义结构体类型,再用类型标识去定义变量 struct student stu1, stu2; struct student是已定义的结构体类型标识符; stu1、stu2是所定义的结构体变量;编译时将为 结构体变量分配各自的存储空间; 2)定义类型的同时定义变量 struct student { …; …; } stu1, stu2;
18
5. 结构体变量的指针、结构体成员的指针 注:&优先级为2级,低于.和[ ]; stu1 变量stu1的指针:&stu1 图示: num
num成员指针:&stu1. num
4
20 1
name第i个元素指针:&stu1. name[i]
name sex m

birthday d 最低级成员y的指针:&stu1.birthday.y y score
5
例:定义可表示学生基本情况的结构体类型。
项目: 学号 姓名 性别 出生日期 成绩 电话号码 数据: 010510 Li Feng M 1981.5.4 680 029-8482500
类型: 长整/字串 字串
字符
字串
整型
字串
struct student /*结构体类型标识*/ { long num; char name[20]; char sex; char birthday[12]; float score; char tel[15]; };

C程序设计第十一章ppt课件

C程序设计第十一章ppt课件
最新版整理ppt
第11章
11.2 文件的打开和关闭
例➢ :打以开只文读件方fo式pe打n函开数文本文件d:\vc\abc.txt。
F函IL数E原型*fp;
fp=fopen( "d:\\vc\\abc.txt", "r" ) ; 通FIL常E需* fo要pe检n(查cha文r *件file打na开me是, c否ha成r *功mo,de以) 下是 文件功打能开:常打开用名的为程fi序len段am:e的文件,函数的返回值
➢ 文件类型指针的定义 FILE *文件结构体指针变量名;
最新版整理ppt
第11章
11.1 文件概述
➢文件的操作
打开文件:建立文件缓冲区、获取指向 FILE类型结构体变量的指针。
读写文件:通过文件类型指针,调用读写 函数对文件进行读写操作。
关闭文件:释放文件缓冲区,释放文件指 针所指的FILE类型结构体变量。
➢ 文件名称
文件名[.扩展名]
➢ 在C程序中的数据文件按存储格式分:
以字符形式存储的文件称文本文件或ASCII 码文件
以二进制形式存放的文件称二进制文件
最新版整理ppt
第11章
数据文件的存储格式
➢例:数据12345678 二进制文件
按二进制数存放:4个字节
00000111 01011011 11001101 00010101
11.3 文件的读写— feof函数
➢ feof函数:判断是否读到文件末尾
函数原型:int feof(FILE *fp)
功能:当读到文件末尾时返回非0值,否 则返回0。
例使:用FI方LE法*:fp适; 用c于ha文r 本ch文; 件或二进制文件 fp=fopen( "d:\\vc\\abc.txt", "r" ) ;

C++电子课件第十一章.ppt

C++电子课件第十一章.ppt
(2) 泛型算法(Generic Algorithm):
在模板中算法不依赖于具体的数据类型,而泛型算法更进一 步不依赖于具体的容器。泛型算法中采用函数对象 (Function Object)引入不同情况下同一算法的差异。它没 有使用继承和多态,避免了虚函数的开销,使STL效率更高。
(3) 迭代子(Iterator):
【例11.2】寻找vector容器元素。
11.3.1 矢量类
特殊类型迭代子:
*它们本身也具有五种四级迭代子属性之一
反转型迭代子(Reverse Iterator):
它是把一切都颠倒过来。正向遍历一个第一类容器时,如果 用了反转迭代子,实际上实现的是反向遍历。
begin()和end(),分别返回指向容器首元素和容器的末元素的后继的迭代子;
迭代子是指针概念的泛型化,它指向容器中的元素,它能象 指针一样增减,轮流指示容器中每个元素。所以说迭代子是 面向对象版本的指针。迭代子可以包括指针,但迭代子又不 仅仅是一个指针。 迭代子把算法与容器连接起来。注意算法只是间接通过迭代子 操作容器元素,算法本身与容器无关。算法通常返回迭代子。
11.2 迭代子类
back_inserter(Type&)
它使用容器的push_back()插入操作代替赋值操作符,将新元素添加到容 器对象的末端。实参是容器本身。返回一个back_inserter迭代子。
front_inserter(Type&)
它使用容器的push_front()插入操作代替赋值操作符,将新元素添加到容 器的前端,同样,新添加的元素以逆序方式结束于被控序列前端,即最后添 加的元素放在最前面。实参也是容器本身。返回一个front_inserter迭代子。 front_inserter不能用于矢量vector,因为vector没有成员函数 push_front()。

C语言第十一章[57页]

C语言第十一章[57页]

结构体类型的声明
struct student {
long id; char name[20]; char sex; int age; float score[5]; char addr[30]; };
声明了一个结构体类型
结构体的名字 称为结构体标 签(Structure Tag)
构成结构体的变量 称为结构体的成员
第十一章 自定义数据类型
目录/Contents 结构体数据类型,共用体数据类型、枚举数据类型、定 义数据类型的别名 结构体变量、结构体数组、结构体指针的定义和初始化 结构体成员的引用、成员选择运算符、指向运算符 向函数传递结构体变量、结构体数组、结构体指针 动态数据结构、动态链表
问题的提出
在程序里怎样表示一个人的信息(姓名、年龄、性别…)? 想表示多个人呢? 如何用计算机程序实现下述表格的管理?
long id; char name[20]; char sex; int age; float score[5]; char addr[30]; }STUDENT;
stu.id=1232019101; strcpy(,”张三丰”); stu.sex=‘M’;
stu.age=20;
stu.score[ ]= {85,78,90,83,77}; Stu.addr=“北京”;
typedef struct date {
int month; int day; int year; }DATE;
结构体.成员名
stu.id=1232019101; 当出现结构体嵌套时,必须以级联方式 访问结构体成员
stu.birthday.year=2000; stu.birthday.month=5; stu.birthday.day=12;

C 语言程序设计章 (11)

C  语言程序设计章 (11)

{
MyStack<int,5> ss;
for(int i=0;i<10;i++)
{try
{if(i%3)cout<<ss.pop()<<endl;
else ss.push(i);
}
catch (StackOverflowException &e)
{ e.getMessage();
}
catch (StackEmptyException &e)
– try语句块和catch语句块是一个整体,两者之间不能有其他的语句;
– 一个try语句块后面可以有多个catch语句,但是,不可以几个try语句块后 面用一个catch语句。
C++语言程序设计
11
11.3 用类对象传递异常
– throw语句所传递的异常,可以是各种类型的:整型、实型、字符型、指针, 等等。也可以用类对象来传递异常。
template <class T, int i> //类模板定义 class MyStack { T StackBuffer[i];
int size; int top; public: MyStack( void ) : size( i ) {top = i;}; void push( const T item ); T pop( void ); };
理的机制。
C++语言程序设计
6
• 例:程序将连续地输入两个实数,通过调用函数,返回这两个数相除的商。并且 要注意除数不能为0。
• 用一般的方法处理除法溢出
void main()
#include <iostream>

C语言第11章zk

C语言第11章zk

11.2.2 邻接表
1.图的邻接表表示
将每个结点的边用一个单链表链接起来,若干个结点可以得到若干个单链表,每 个单链表都有一个头结点,为将所有头结点联系起来组成一个整体,所有头结点 可看成一个一维数组,称这样的链表为邻接表。
2011年10月30日
19
例如,图11-8所示的无向图G3和有向图G4的邻接表如图11-11所示。
2011年10月30日
9
有向图中,极大的强连通子图为该图的强连通分量。显然,任何强连通图的强连 通分量只有一个,即它本身,而非强连通图有多个强连通分量。 对于图11-5中的非强连通图,它的强连通分量见图11-7。
1
2 5
3 6
4
图11-7 图11-5(b)的强连通分量
2011年10月30日
10
8.路径、回路
1 2
∑d
i =1
n
i

例如,对图11-1,G1中顶点a,b,c,d的度分别为3,2,2,3,G2中顶点1,2, 3的出度分别为2,1,1,而它们的入度分别为1,1,2,故顶点1,2,3的度分别 为3,2,3。
4.子图
若有两个图G1和G2,G1=(V1,E1),G2=(V2,E2),满足如下条件:V2⊆V1 , E2⊆ E1,即V2为V1的子集,E2为E1的子集,称图G2为图G1的子图。 图和子图的示例具体见图11-2。
//输入顶点信息
//矩阵的初值为0 //输入一条边(i,j)
该算法的时间复杂度为O(n2)。
2011年10月30日
17
7.建立有向图的邻接矩阵
void creatadj1(struct graph &g) { int i, j,k ; for(k=1; k<=n; k++) scanf(“%c”,&g.v[k]); for (i=1; i<=n; i++ ) for (j=1; j<=n; j++) g.arcs[i][j]=0; for (k=1; k<=e; k++) { scanf(“%d %d”,&I,&j); g.arcs[i][j]=1; } }

C语言第十一章课件

C语言第十一章课件

sex:%c\n”,(*p).num,(*p).name, (*p).sex);
}
引用结构体成员的三种形式:
结构体变量名.成员名 (*p).成员名
指向运算符。其优先级 高于自增、自减运算符
p- >成员名
试分析以下运算:
p->n 得到p指向的结构体变量中的成员n的值 p->n++ 得到p指向的结构体变量中的成员n的值,
char ch;
float fdata
{int i; char ch; 先定义 float f; 类型
};
union data a,b,c;
union {int i; char ch; float f; } a,b,c;
直接 定义
注意共用体类型变量与结构体类型变量的 区别
行赋值或存取以及运算。
如:student1.birthday.year
(续)
(接上片)
3. 对成员变量可以象普通变量一样进行各种运算, 如:
sumage=student1.age+student2.age;
4. 可以引用成员的地址,也可以引用结构体变量的
地址,如 scanf(“%d”,& student1.num);
不能只指定一个变 量为“struct型”而不 指定结构体名
struct student student1, student2;
•有时,可用符号常量代表一个结构体类型,如:
#define STUDENT struct student
STUDENT
{int num; char name[20]; char sex; int age; char addr[30];
struct date {int month; int day; int year; };

C语言学习课件PPT第11章

C语言学习课件PPT第11章

(3)实现&、|、^运算主要用途的方法 1)构造1个整数:该数在要取(或保留)的位、或 要置1的位、或要翻转的位上为1,其余均为0。 2)进行按位与、或按位或、或按位异或操作。 (4)实现按位取反主要用途的方法 1)求~0,间接地构造一个全1的数; 一 个 全 1 的 数 , 在 IBM-PC 机 中 为 0xffff(2字节),而在VAX-11/780上,却是0xffffffff(4 字节)。如果用~0来构造,系统可以自动适应。具体应 用,请参见[案例 案例11.1]。 案例 11.2.2 应用举例 [案例 案例11.1] 从键盘上输入1个正整数给int变量num, 案例 输出由8~11位构成的数(从低位、0号开始编号)。
第11章 章
位运算
为了节省内存空间,在系统软件中常将多个标志状 态简单地组合在一起,存储到一个字节(或字)中。C 语言是为研制系统软件而设计的,所以她提供了实现将 标志状态从标志字节中分离出来的位运算功能。 所谓位运算是指,按二进制位进行的运算。
11.2 位运算 11.3 位段 [Return]
11.2 位 运 算
程序运行情况: Input a integer number:1000 ←┘ result=0x3 程序说明:~ ( ~0 << 4) 程序说明 按位取0的反,为全1;左移4位后,其低4位为0,其 余各位为1;再按位取反,则其低4位为1,其余各位为0。 这个整数正是我们所需要的。 [案例 案例11.2] 从键盘上输入1个正整数给int变量num, 案例 按二进制位输出该数。 /*案例代码文件名:AL11_2.C*/ /*程序功能:按二进制位输出一个整数*/
3.按位异或──^ .按位异或 (1)格式:x^y (2)规则:对应位相同时为0,不同时为1:3^9=10。 (3)主要用途:使1个数的某(些)位翻转(即原来为1的位 变为0,为0的变为1),其余各位不变。 4.按位取反 .按位取反──~ (1)格式:~x (2)规则:各位翻转,即原来为1的位变成0,原来为0的 位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。 (3)主要用途:间接地构造一个数,以增强程序的可移 植性。 5.按位左移 .按位左移──<< (1)格式:x<< 位数 (2)规则:使操作数的各位左移,低位补0,高位溢出: 5<<2=20。

C语言共用体与枚举

C语言共用体与枚举
2013/11/22
C语言程序设计教程
第12章 共用体与枚举类型
8
(3) 共用体变量的地址和它的各个成员的地址相同。
(4) 不能企图引用共用体变量名来得到某成员的值。
(5) 共用体变量不能作函数参数,函数的返回值也不 能是共用体类型。 (6) 共用体类型和结构体类型可以相互嵌套,共用体 中成员可以为数组,甚至还可以定义共用体数组。
2013/11/22
C语言程序设计教程
第12章 共用体与枚举类型
21
12.4.3 位段结构
有时,存储1个信息不必占用1个字节,只需二进 制的1个或多个位就够用。如果仍然使用结构类型,则 造成内存空间的浪费。为此,C语言引入了位段类型。 1. 位段的概念与定义 所谓位段类型,是一种特殊的结构类型,其所有 成员均以二进制位为单位定义长度,并称成员为位段。 位段结构中位段的定义格式为: unsigned <成员名>:<二进制位数> 例如,CPU的状态寄存器,按位段类型定义如下:
2013/11/22
C语言程序设计教程
第12章 共用体与枚举类型
17
6.按位右移──>> (1)格式:x>>位数 (2)规则:使操作数的各位右移,移出的低位舍弃; 高位: 1)对无符号数和有符号中的正数,补0; 2)有符号数中的负数,取决于所使用的系统:补0 的称为“逻辑右移”,补1的称为“算术右移”。例如, 20 >> 2=5。
2013/11/22
C语言程序设计教程
第12章 共用体与枚举类型
15
0011 | 1001 1011=11 (3)主要用途:将1个数的某(些)位置1,其余各位 不变。
3.按位异或──^ (1)格式:x^y (2)规则:对应位相同时为0,不同时为1:3^9=10。 (3)主要用途:使1个数的某(些)位翻转(即原来为1的 位变为0,为0的变为1),其余各位不变。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

….
a
0x0037b000
pa
1
0x0037b004
2
0x0037b008
3
0x0037b00B
4
a[0] a[1] a[2] a[3]
…...
int *pa=a; int *pa=&a[0];
数组名是一个常量指针 不能修改该指针的指向
指针可当数组名使用,可 以更改指针的指向
11.1 指针和一维数组间的关系
char c[ ]= "sofptw[1a] re&"b,[*0]p[4];
hardware b
int i;
p[2] &c[0]
software c
p[0]=a;
p[3] NULL
p[1]=b;
p[2]=c;
运行结果为:
数组pf在 字末o[r3程符尾p(]i=r=设序指iN0n置中针Ut;fL(pN数,"U[L%iL组如];L!=s(在果\空Nn初一"/U指/,或Lp始个针[Lpi化数])[);3来;时组]i+=解+的0,;)决长也。度可chsooa不以fmrtdw定把pwauar多,teerre个可以字利符用串在的
地址量[整数i]
其含义是访问以地址量为起 点的第i个数据。
a[5] p[5]
*(a+5) *(p+5)
int a[10];
p= &a[0] a a[0] *p a[1] *(p+1)
a[2]
a[3]
p+5
a+5
a[4] a[5] *(p+5)
a[6]
a[7]
a[8i ] *(p+i)
a[9]
从地址的角度来看:
a*[p5[]5]=={1{,&a2[,0p]p[3,[10,]]&4a&&,[1aa5][[10},]];&a[2],
1
&a[3]2,
&aaa[[[401]]] };
for(int i = 0; i p<[25]; &i+a+[2)]
3 a[2]
printf("%d\t",*pp[[3i]])&; a[3]
11.4.3 【例11.6】 一维动态数组
n p 确保指针使用前是非空指针
释放向系统申请的存储空间
11.4.3
【例11.6】 一维动态数组
n p
像使用一维数组一样 使用动态数组
Questions and answers
形参声明为列数已知的 二维数组
形参声明为指向列数已知 的二维数组的行指针
11.3 指针数组及其应用
一系列有序指针变量的集合组成了指针数组。指针 数组中的每个元素都是指针变量,并且它们具有相同的 存储类型和指向相同的数据类型。与普通数组一样,在 使用指针数组之前,必须先对其定义。指针数组的定义 形式为:
用指针完成数组元素的输入和输出。
for (i=0; i<4; i++) scanf("%d", &a[i]);
for (i=0; i<4; i++) printf("%d ", a[i]);
for (p=a; p<(a+4); p++) scanf("%d", p);
for (p=a; p<(a+4); p++) printf("%d ", *p);
int (*p)[3] , i , j ; p=a ; for(i=0 ; i<2 ; i++) { for(j=0 ; j<3 ; j++)
printf("%3d",(*p)[j] ); p++ ; } printf("\n") ; return 0 ; }
11.2 指针和二维数组间的关系
【例11.3】输入一个3行4列的 二维数组,然后输出这个 二维数组的元素值
第11章 指针和数组
本章学习内容
指针与一维数组间的关系, 指针与二维数组间的关系 向函数传递一维数组和二维数组 指针数组,命令行参数 动态数组,动态内存分配
1 指向数组的指针
在C语言中,a[i]也是一个运 算表达式,其运算符就是下 标运算符[],也称为访问数 据运算,它是第一优先级的 运算。访问数据运算表达式 的一般形式是:
【例11.1】演示数组元素的引用方法
【例11.1】演示数组元素的引用方法
【例11.2】演示数组和指针变量作函数参数
被调函数的形参声明为 数组类型,用下标法访 问数组元素
【例11.2】演示数组和指针变量作函数参数
被调函数的形参声明为 指针类型,用指针法访 问数组元素
一般主函数使用数组名字做实参,被调用函数 使用指针做形参。
a[i] p[i]
*(a+i) *(p+i)
下标法 (随机访问好)
指针法 (顺序访问 更快更方便)
对一个数组元素a[i]的地址可以表示为: &a[i]、 &pa[i]、p+i、a+i。
对一个数组元素a[i]的数值可以表示为: a[i]、pa[i]、*(p+i)、*(a+i)。
int a[4]={1,2,3,4};中的各个元素。
}
11.4.1 C程序的内存映像
C程序中变量的内存分配方式
– 从只读存储区,分配只读的程序和数据 – 从静态存储区分配
全局变量和静态变量
– 在栈上创建
存放函数参数值、局部变量值等 在执行函数调用时,系统在栈上为函数内的局部变量及形
void* calloc(unsigned int num, unsigned int size);
void*类型的指针可以指向任意类型的变 量,通常强转(Type*)为其他类型
11.4.2动态内存分配函数
void* malloc(unsigned int size);
向系统申请大小为size的内存块 把首地址返回,若申请不成功则返回NULL
参分配内存,函数执行结束时,自动释放这些内存
– 从堆上分配
在程序运行期间,用动态内存分配函数来申请的内存都是 从堆上分配的,动态内存的生存期由程序员自己来决定
11.4.2动态内存分配函数
#include <stdlib.h> #include <alloc.h>
void* malloc(unsigned int size);
void* calloc(unsigned int num, unsigned int size);
向系统申请num个size大小的内存块 把首地址返回,若申请不成功则返回NULL
11.4.2动态内存分配函数
void* free(void* p);
释放由malloc()和calloc()申请的内存块 p是指向此块内存的指针 free时系统标记此块内存为未占用,可被重新分配
存储类型 数据类型 *指针数组名[元素个数];
指针数组名就表示该指针数组的存储首地址。
例:① int *p[2]; ② int a, *p, b[10], *p1[3];
例3 指针数组举例。
#include <stdio.h>
int main()
int *p[5];
int a[5];
{
int int
a+1 &a[1][0] a[1] &a[1][1] a[1]+1 &a[1][2] a[1]+2
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
数组(的)指针
指向数组的指针被称为数组指针,使用数组指针
能很方便地处理二维数组。数组指针的说明形式如下:
存储类型 数据类型 (*指针名)[元素个数];
11.2 指针和二维数组间的关系
二维数组看作一维数组,其每个数组元素又是一个 一维数组,按行顺序存放所有元素
short a[2][3];
a[0][0]
a[0] a[0][1]
a
a[0][2]
a[1][0]
a[1] a[1][1]
a[1][2]
a &a[0][0] a[0] &a[0][1] a[0]+1 &a[0][2] a[0]+2
例如:int (* p)[3];
int (*p)[3];
p
(*p)[0] (*p)[1] (*p)[2]
注意:
数组指针
① *p两侧的括号一定不要漏掉。
② p是一个行指针,它只能指向一个含若干元素的一维数组 (其值为该一维数组的首地址) 。
例 利用数组指针处理二维数组。
#include <stdio.h> int main( ) { int a[2][3]={ 1,2,3,4,5,6 };
4 a[3]
return 0; }
p[4] &a[4]
5 a[4]
指针数组主要用来指向多个字符串,这样 可使字符串的处理更加方便灵活、效率高。
例4 利用字符指针数组处理多个字符串。
#include <stdio.h>
int main( )
char *p[4];
{ char a[ ]="compp[0u]te&r"a,[0b][ ]= "hardwcaorme"pu; ter a
相关文档
最新文档