- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针的定义和应用
第15章 指 针;本章主要内容;;;;;什么是指针;什么是指针变量?;指针变量的概念;指针变量的声明;指针变量的初始化;指针变量的初始化;指针与地址运算符;指针与地址运算符;指针变量的赋值运算;指针变量的赋值运算;例1 指针的定义、赋值与使用;;指针变量的算术运算;;;关系运算
两个指针变量指向同一个数组中的元素时,其关系运算的结果表明了这两个指针变量所指向的数组元素的先后关系
指针可以和零之间进行等于或不等于的关系运算。例如:p==0或p!=0;指针的关系运算;;;应用举例2;;应用举例3;;;应用举例4;;;字符指针来存储和处理字符串;用字符数组存储和处理字符串;字符指针的定义、赋值和引用--例5;动态存储分配;动态申请内存操作符 new;动态申请内存操作符 new;动态申请内存操作符 new;释放内存操作符delete;使用动态存储分配时,应注意:
确认分配成功后才能使用。
分配成功后不宜变动指针的值。
用运算符new获取的内存空间,必须用delete进行释放。
对一个指针只能调用一次delete。
在使用delete运算符进行释放时,不用考虑数组的维数。;动态存储分配--例6;cout“please input the length of the array:”endl;
cinn;
if((p=new int[n])= =0)
{
cout“can’t allocate memory.”endl;
exit(1);
}
for(i=0;in;i++)
p[i]=i*2;
cout“now output the array:”endl;
for(i=0;in;i++)
coutp[i]“ “;
coutendl;
delete [ ]p;
};运行 结果为:
please input the length of the array:6
now output the array:
0 2 4 6 8 10
;引用;按引用调用;按引用调用;按引用调用;用引用参数按引用调用-例7;用引用参数按引用调用-例7;用指针参数按引用调用-例8;用指针参数按引用调用-例8;数组名做函数参数 ;数组名做函数参数;数组名做函数参数;[例9];#includeiostream
using namespace std;
void invert(int a[ ],int n)
{ int t=0;
for(int i=0;in-1;i++)
for(int j=i+1;jn;j++)
if(a[i]a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
};int main( )
{ int i;
int a[10];
coutInput 10 numbers:endl;
for(i=0;i10;i++)
cina[i];
invert(a,10);
coutThe sorted numbers is:endl;
for(i=0;i10;i++)
couta[i]endl;
return 0;
} ;指向数组的指针变量作为函数参数 ;[例10];#include iostream
using namespace std;
void invert(int *p,int n)
{
int i,j,temp;
for(i=0,j=n-1;ij;i++,j--)
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
};int main( )
{
int a[10],i; //int*q=a;
coutInput ten interger:endl;
for(i=0;i10;i++)
cina[i];
invert(a,10); //invert(q,10);
for(i=0;i10;i++)
couta[i]endl;
return 0;
} ;练习---阅读程序写结果;练习---阅读程序写结果
文档评论(0)