c语言程序设计教程第9章指针进阶,C语言程序设计第9指针进阶.ppt

C语言程序设计第9指针进阶

第9章 指针进阶 学习目标 1.掌握指针数组的定义及其应用,了解二级指针的基本概念; 2. 理解二维数组的指针和指向二维数组的指针变量; 3. 了解指向函数的指针,理解指针型函数; 4. 初步了解内存的动态分配和动态回收; 5. 初步掌握单向链表的建立与访问、在单向链表中插入、删除结点等算法。 9.1 指针数组 9.1.1 指针数组的概念 指针数组:一个数组的每个元素均为指针类型 形式: 数据类型 *数组名[数组长度]; int *pa[3]; char *pname[5]= {"JiangSu","ShanDong","ZheJiang","GuangXi","AnHui"}; 9.1.2 指向指针的指针变量 指向指针的指针变量:一个指针变量中存放的是另一个指针变量的地址 形式: 数据类型 **指针变量名; int **p; int x=5,*q=&x; int **p; p=&q; #include void main() { int a=10,*b,**c; b=&a; c=&b; printf("%d,%d,%d\n",a,*b,**c); *b=20; /* 通过b间接访问a */ printf("%d,%d,%d\n",a,*b,**c); **c=30; /* 通过c间接访问a */ printf("%d,%d,%d\n",a,*b,**c); } 运行结果: 10,10,10 20,20,20 30,30,30 9.1.3 指针数组应用举例 编程将若干字符串按字母顺序由小到大排序后输出。 #include #include #define N 5 /* 字符串个数 */ void sort(char **name,int n); void print(char *name[],int n); void main() { char *pname[N]={"JiangSu","ShanDong","ZheJiang","GuangXi","AnHui"}; printf("before sorted:\n"); print(pname,N); /* 排序前输出各字符串 */ sort(pname,N); /* 排序 */ printf("after sorted:\n"); print(pname,N); /* 排序后输出各字符串 */ } void sort(char *name[],int n) { char *pt; int i,j,k; for(i=0;i0) k=j; if(k!=i) { pt=name[i]; name[i]=name[k]; name[k]=pt; } } } void print(char **name,int n) { int i; for(i=0;i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值