




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,指针运算符,& 取变量或存储单元的地址 * 取指针所指向的单元(变量),结论: *pt相当于a (*pt)+相当于a+ &*pt=&a=pt *&a=*pt=a,a=1;,例: int a, *pt; pt=,2,-2-,*p相当于变量a,指针与变量,int a, * p ; p=,3,【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值,#include “stdio.h“ void swap(int x, int y); void main(void) int a, b; printf(“请输入交换的数值:“); scanf(“%d%d“, ,4,【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值(改进),#include void swap(int *x, int *y); void main() int a, b; scanf(“%d%d“, ,5,void swap(int *x, int *y) int t; printf(“n-swap-n“); printf(“x=%x,y=%xn“, x, y); t = *x; *x = *y; *y = t; printf(“-swap-nn“); ,6,例 编写函数求出二维整型数组中元素的最大值及其下标号,#include #define M 3 #define N 2 int maxarray(int aMN, int m, int n, int *pmaxi, int *pmaxj); void main() int aMN=1,2,3,4,5,6; int max, maxi, maxj; max = maxarray(a, M, N, ,7,int maxarray(int aMN, int m, int n, int *pmaxi, int *pmaxj) int i, j, max = a00; for(i=0; im; i+) for(j=0; jn; j+) if(maxaij) max = aij; *pmaxi = i; *pmaxj = j; return max; ,8,-8-,ai *(a+i) pi *(p+i),数组元素表示法,数组元素地址表示法,&ai a+i &pi p+i,指针与一维数组,int a10, * p = a;,9,下标法 main ( ) int a10; i; for (i=0;i10;i+) scanf(“%d“, ,数组名计算地址法 main ( ) int a10;i; for (i=0; i10; i+) scanf(“%d“, a+i); for (i=0; i10; i+) printf (“%d“,*(a+i) ); ,例:输入输出整型数组a的全部元素。(假有10个元素),指针法 main( ) int a10, i, *p ; p= ,10,【例】写一个函数,将包含n个元素的数组进行排序,void main() /*冒泡*/ int n=10, a10=3,2,4,5,6,8,9,25,21,10 ; int i, j, temp; for(i=0; iaj+1) temp = aj; aj = aj+1; aj+1 = temp; ,void sort(int a, int n),aj *(a+j),void sort(int * a, int n),if(*(a+j)*(a+j+1) temp = *(a+j); *(a+j) = *(a+j+1); *(a+j+1) = temp;,11,8.6 指针与数组编程实例,【例8-7】数列的中位数是数列中按照数值大小排在中间位置的数。例如:数列1,2,3,4,5的中位数为3。 算法:先对数列排序,然后寻找排序序列的中位数。,11,12,#include void sort(int a, int n); void main() int ser100; int i, num; printf(“Input length of serial:n“); scanf(“%d“, ,13,void sort(int a, int n) int i, temp; int *p; for(i=0; i *(p+1) temp=*p; *p=*(p+1); *(p+1)=temp; ,13,Input length of serial: 5 input serial elements: 1 -3 23 67 15 The median of serial is 23,14,8.7 指针与字符串,字符串表示形式 用字符数组实现,main( ) char string=“I love China!”; printf(“%sn”,string); printf(“%sn”,string+7); ,I love China!,China!,用字符指针实现,15,main( ) char *cp=“I love China!”; printf(“%cn”, *cp); printf(“%sn”, cp); cp+=7; printf(“%sn”, cp); ,I I love China! China!,16,char string20= “I love China!”;,char *cp= “I love China!”;,aa00,17,字符型指针变量与字符数组 char str20; 与 char *cp; str由若干元素组成,每个元素放一个字符 cp只是一个指针变量,存放字符串首地址 char str20; str=“I love China!”; char *cp; cp=“I love China!”; str是地址常量;cp是地址变量 cp接受键入字符串时,必须先开辟存储空间,例 char str10; scanf(“%s”,str); () 而 char *cp; scanf(“%s”, cp); (),改为:char *cp, str10; cp=str; scanf(“%s”,cp); (),18,char str=“Hello!”; char str=“Hello!”; char str=H,e,l,l,o,!; char *cp=“Hello”; int a=1,2,3,4,5; int *p=1,2,3,4,5; char str10, *cp; int a10, *p; str = “Hello”; cp = “Hello!”; a = 1,2,3,4,5; p = 1,2,3,4,5;, , ,分析下列用法正确与否,19,【例8-9】写程序,判断一个单词是否为回文。回文指的是单词按从前到后与从后到前的顺序读都相同,例如“level”就是是一个回文单词。,#include #include #define MAXLEN 80 void main() char *str; int flag; int pal(char *); if (str = (char *) malloc(MAXLEN) ) = NULL) printf(“Memory allocation error!n“); exit(0); ,20,printf(“Input a word:n“); scanf(“%s“, str); while (*str != #) flag = pal(str); if (flag) printf(“%s is a palindrome!n“, str); else printf(“%s isnt a palindrome!n“, str); printf(“Input a word:n“); scanf(“%s“, str); free(str); ,21,int pal(char * str) /*判断回文*/ char *p, *q; p = str; q = str; while (*q != 0) /*p指向首部,q指向尾部*/ q+; q-; while (p = q); ,22,C语言字符串操作的库函数,1字符串连接函数strcat,char * strcat(char *s1, char *s2) char *p, *q; p = s1; q = s2; while( *(p+1)!= 0 ) p+; while(*q!=0) *p = *q; p+; q+; *p = 0; return s1; ,23,C语言字符串操作的库函数,2字符串拷贝函数strcpy,char *strcpy(char *s1,char *s2) 功能:把字符串s2复制到字符串s1中。 例如: char str80; strcpy(str, “abcd“);,24,C语言字符串操作的库函数,3字符串比较函数strcmp int strcmp( char *s1,char *s2) 功能:按照字典排序方法比较字符串s1和字符串s2,返回值如下: (1) s1=s2,返回值0; (2) s1s2,返回值0; (3) s1s2,返回值0。 例如:char str1=”word”,str2=”world”; strcmp(str1,str2)的返回值小于0。,24,25,C语言字符串操作的库函数,4求字符串长度函数strlen size_t strlen(char *s) 功能:求字符串的实际长度(不含串结束标志0) 例如: int len; len=strlen(“hello”); /* len为5 */ len=strlen(“”); /* len为0 */,25,26,C语言字符串操作的库函数,5字符串中子串定位函数 strstr char * s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印染染化料配制工中秋节后复工安全考核试卷含答案
- 中药调剂员国庆节后复工安全考核试卷含答案
- 木材削片工国庆节后复工安全考核试卷含答案
- 高炉运转工国庆节后复工安全考核试卷含答案
- 药业公司招商方案参考
- 起重机械维修工国庆节后复工安全考核试卷含答案
- 抓岩机司机国庆节后复工安全考核试卷含答案
- 电子产品维修工操作技能培训手册
- 企业职工假期培训心得体会模板
- 预拌混凝土中控工节假日前安全考核试卷含答案
- 高三物理一轮复习-光学名师公开课获奖课件百校联赛一等奖课件
- 国庆节主持词开场白
- 中医体质分型
- 标书内技术服务和售后服务方案
- 《中国特色社会主义道路的开辟与发展》部优课件
- 前列腺癌根治术护理查房课件
- 英语四级核心词690个附高频词汇表
- 初中国学诵读教案
- 2024年石家庄交通投资发展集团有限责任公司招聘笔试冲刺题(带答案解析)
- (高清版)TDT 1037-2013 土地整治重大项目可行性研究报告编制规程
- 拒绝内耗拥抱更美好的自己
评论
0/150
提交评论