- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C_第4章___指针和引用
第四章 指针和引用;【指针常量和指针变量 】;指针也可以和其他变量同时声明;(1)两个特殊的指针操作符是和*。; *称为取值操作,也是一元操作符,操作数只能是指针变量,功能是返回指针所指向的变量的值。 ;说明:没有明确地给指针赋一个地址值,因而其值是随机的。;【例4.1】 简单指针变量。
#includeiostream.h
int main(int argc, char *argv[])
{
float x,y;
float *px,*py;
px=x;//A: px指向x
py=y;// B: py指向y
*px=3.14;//将3.14送入px指向的单元(X)中
*py=4.21;//将4.12送入py指向的单元(y)中
if(xy) coutx;
else couty;
return 0;
} ;(2)指针的 算术运算;利用指针对数组进行操作时,也必须注意越界问题。
比如: int x[5];
int *p=x; //指针p指向数组x的首地址
p= p+5;
*p=10;;比如: int x[5],i;
int *p1=x[1], *p2=x[4];
i=p2-p1;;声明二级指针的形式如下:
数据类型 **标识符;#includeiostream.h
#includestring.h
void main()
{
char **p;
char a=x,*q=a;
p=q;
cout**pendl;
}
输出结果是:
x;4.1.2 指针的应用;【例4.5】定义指向指针的指针变量。观察对这种指针变量间接访问的结果。
#includeiostream.h
void main()
{
int va=100,*pva,**ppva;
int k1=100;
pva=va;
cout*pva=*pvaendl; //间接访问结果是整型数
ppva=pva;
cout*ppva=*ppvaendl; //间接访问结果是地址
coutpva=pvaendl; //就是指针pva的内容
}
程序运行结果为:
*pva=100
*ppva=0x0012FF7C
pva=0x0012FF7C;【例4.6 】 构建人员档案链表;for(i=1;;i++){
couti name:;
cintemp-name;
if(temp-name[0]!=*){
cout age,sex:;
cintemp-agetemp-sex;
temp-next=NULL;
tail=temp;
}
else{
delete temp;
tail-next=NULL;
break;
}
temp-next=new person;
temp=temp-next;
}
//此for语句的运行完成人员档案资料表的输入,以*作为人名即可停止输入。 ;temp=head;
while (temp!=NULL)
{
coutendltemp-name temp-age;
cout temp-sex;
temp=temp-next;
}
}
;4.1.3 指针与数组;}
int main(int argc, char *argv[])
{
int s[][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
coutendl*((int *)s+2*3+1)*(s[0][0]+2*3+1);
//输出s[2][1]两次,即88
show_matrix(s[0][0],4,3,5);
coutendl;
coutendlendl按回车键继续...;
cin.get();
return 0;
}
程序的输出是:
88
1 2 3
4 5 6
7 8 9
10 11 12;数组名是指针常量,而不是指针变量。
如: int array[100];
则:array=array[1];(×)
指针的加减
指针加减的含义:
☆指针+1:指针向后移动一个数组元素。
☆指针-1: 指针向前移动一个数组元素。;10;假设一个二维数组:int x[2][3];
则数组中的元素x[i][j]有多种访问方法,以下是其中的一部分:
*(*(x+i)+j)
*(x[i]+j)
*(x+i)[j]
*(x+3*i+j);【指针与字符串 】;
您可能关注的文档
- 9.1溶液的形成讲课.ppt
- 9.1 我们的共同理想(共49张PPT).ppt
- 9.绝对值.ppt
- 9.宝玉挨打.ppt
- 90印象素材-可爱风动态模板-001.ppt
- 9 怀素写字(新).ppt
- 7胡淑君-早期识别剖宫产瘢痕部位妊娠的重要性.ppt
- 液压基础知识3教程.ppt
- 液压制动系统简介教程.ppt
- 90印象素材-可爱风动态模板-004.ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)