- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]C语言:指针
内存地址的概念 计算机的内存是存储单元的集合; 每个存储单元一个字节; 每个存储单元都有一个地址; 当声明一个变量时,系统会在内存中分配适当的存储空间,保存变量的值; 右图为64K内存的地址编码情况。 三、指针运算与指针的递增 指针可以使用算术运算和关系运算 例如:p1,p2是已经声明并初始化了的指针 则下列运算是允许的: p1++ p2-- p1+4 p1-p2 p1p2 p1==p2 p1!=p2 写程序查找数组中的最大值,并将最大值输出。(指针指向数组首元素,移动指针来查找最大值,最大值变量不需要用指针) 例:编程将字符串str1复制到str2中。 ????????#include string.h????????void main( )????????{ char str1[80], str2[80], *p1, *p2;??????????printf(Enter string 1:);??????????gets(str1);??????????p1=str1;??????????p2=str2;??????????while((*p1)!=\0) ???????????{ *p2=*p1; p1++; p2++; } *p2=\0; ???????? ?? printf(String 2:);??????????puts(str2);????????} 返回指针的函数(指针函数) 函数返回值为指针或地址 例:编程将str1复制到str2中。 例:编程查找数组中的最大值,并将最大值输出。 #include string.h char *stringcopy(char *string1,char *string2) { char *p1,*p2; p1=string1; p2=string2; while((*p1)!=\0) { *p2=*p1; p1++; p2++; } *p2=\0; return string2; } void main( ) { char str1[80]=, str2[80]=,*p; printf(Enter string 1:); gets(str1); p=stringcopy(str1,str2); printf(String 2:); puts(p); } void main() { int a[10]; int *p,i,*max; p=a; for (i=0;i10;i++,p++) scanf(%d,p); max=arr_max(a); printf(%d,*max); } 指针数组和指向指针的指针 一个数组中的每个元素均为指针类型,即由指针变量构成的数组。 指针数组定义和一般数组类似: 类型 *数组名[常量表达式] 例如: int *pa[5]; 表示定义一个由5个指针变量构成的指针数组,数组中的每个数组元素(指针),都指向一个整数。 例如:要定义5个指针指向5个字符串,可以定义: char *p1,*p2,*p3,*p4,*p5; 或者定义一个指针数组,每个元素是一个指针,分别指向一个字符串。 char *line[5]; #include stdio.h void main() { char *line[5]={one,two,three,four,five}; /*给指针数组的每个元素初始化,使其分别指向一个字符串*/ int i; for(i=0;i5;i++) printf(%s\n,line[i]); } 例:将若干字符串按字母顺序按由小到大输出。 void sort(char *name[], int n) { char *temp; int i,j,k; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(strcmp(name[k],name[j])0) k=j; if(k!=i) { temp=name[i];name[i]=name[k]; name[k]=temp;} } } void print(char *name[], int n) { int i; for(i=0;in;i++) printf(%s\n,name[i]); } 指
您可能关注的文档
最近下载
- 企业内部控制采购业务.doc VIP
- 2022年深圳市大鹏新区招聘社区专职工作者考试真题.docx VIP
- 数字化转型背景下职业教育信息化建设路径.pptx VIP
- 第8课 用制度体系保证人民当家作主【2023年秋最新版】.pptx VIP
- 比泽尔-半封闭整体型螺杆压缩机-中文操作手册CSH65-CSH75-CSH85-CSH95.pdf VIP
- 《无衣》(教学课件)-2024-2025学年高二语文选择性必修上册同步备课系列(统编版2019).pptx
- 基于特征性肽段检测人血浆中特瑞普利单抗药物浓度的液相色谱串联质谱方法.pdf VIP
- 矿业权评估师经济与法律笔记2023.docx VIP
- 肺部感染合并心衰护理查房.pptx VIP
- 财富管理02基础-家庭财务报表.ppt VIP
文档评论(0)