- 3
- 0
- 约2.54千字
- 约 19页
- 2021-11-16 发布于上海
- 举报
HZAU 信息学院计算机应用系 姚娟 HZAU 信息学院计算机应用系 姚娟 C++语言程序设计 指针 * 关于内存地址 内存空间的访问方式 通过变量名访问 通过地址访问 地址运算符: 例: int var; 则var 表示变量var在内存中的起始地址 * * 声明 例:int i; int *i_pointer=i; 指向整型变量的指针 概念 指针:内存地址,用于 间接访问内存单元 指针变量: 用于存放地址的变量 2000 3 i_pointer *i_pointer i 2000 内存用户数据区 变量 i 变量 j 变量 i_pointer 3 6 2000 2000 2004 3010 引用 例1:i=3; 例2:*i_pointer=3; 指针变量的概念 * 语法形式 数据类型 *指针名=初始地址; 例:int *pa=a; 注意事项 用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。 可以用一个已赋初值的指针去初始化另一 个指针变量。 单目运算符*和的优先级比算术运算符高。 指针变量的初始化 * 指针变量的赋值运算 指针名=地址 “地址”中存放的数据类型与指针类型必须相符。 向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。 指针的类型是它所指向变量的类型,而不是指针本身数据值的类型 * 例8-1 指针的声明、赋值与使用 #includeiostream using namespace std; int main() {int *i_pointer; //声明int型指针i_pointer int i; //声明int型数i i_pointer=i; //取i的地址赋给i_pointer i=10; //int型数赋初值 coutOutput int i=iendl;//输出int型数的值 coutOutput int pointer i=*i_pointerendl; //输出int型指针所指地址的内容 return 0; } * 指针变量的算术运算 指针与整数的加减运算 指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。 这种运算的结果值取决于指针指向的数据类型。 指针加一,减一运算 指向下一个或前一个数据。 例如:y=*px++ 相当于 y=*(px++) (*和++优先级相同,自右向左运算) * pa pa-2 pa-1 pa+1 pa+2 pa+3 *(pa-2) *pa *(pa+1) *(pa+2) *(pa+3) *(pa-1) short *pa * * pb-1 pb pb+1 pb+2 *(pb-1) *pb *(pb+1) *(pb+2) long *pb * * * 关系运算 指向相同类型数据的指针之间可以进行各种关系运算。 指向不同数据类型的指针,以及指针与一般整数变量之间的关系运算是无意义的。 指针可以和零之间进行等于或不等于的关系运算。例如:p==0或p!=0 指针变量的关系运算 * * 指向数组元素的指针 声明与赋值 例:int a[10], *pa; pa=a[0]; 或 pa=a; 通过指针引用数组元素 经过上述声明及赋值后: *pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i]. a[i], *(pa+i), *(a+i), pa[i]都是等效的。 不能写 a++,因为a是数组首地址是常量。 * * 设有一个int型数组a,有10个元素。用三种方法输出各元素: 使用数组名和下标 使用数组名和指针运算 使用指针变量 * * void main() { int a[10]; int i; for(i=0; i10; i++) cina[i]; coutendl; for(i=0; i10; i++) couta[i]; } 使用数组名和下标 * * * void main() { int a[10]; int i; for(i=0; i10; i++) cina[i]; coutendl; for(i=0; i10; i++) cout*(a+i); } 使用数组名指针运算 * * * 使用指针变量 void main() { int a[10]; int *p,i; for(i=0; i10; i++) cina[i]; coutendl; for(p=a; p(a+10);
您可能关注的文档
- 0~6岁婴幼儿家长教育观念问题研究.pdf
- 1YD系列轻型交直流高压试验变压器使用说明书.pdf
- 3FSI清洗机培训教材.pdf
- 3多元线性回归与最小二乘估计.pdf
- 5S标准实施规范.pdf
- 5S管理表格大全5S审核清单.pdf
- 5s管理活动推行的意义与步骤.pdf
- 5s管理活动推行实务与目视管理.pdf
- 5S活动的概念与推行实务.pdf
- 5S活动推行技巧实务.pdf
- 2025昆明聂耳交响乐团编外人员招聘笔试试题(5人)附答案解析.docx
- 2026年煤炭行业产能过剩治理措施及效果分析报告.docx
- 2025昌吉市消防救援大队招聘编制外政府专职消防员笔试试题(21人)附答案解析.docx
- 2025曲靖市陆良县中医医院招聘编制外工作人员笔试题库(4人)附答案解析.docx
- 2025昆明市消防救援支队政府专职消防员招聘笔试题库(188人)附答案解析.docx
- 2026年私营企业核聚变能源技术商业化前景.docx
- 2025春季东航物流招聘笔试备考试题附答案解析.docx
- 2025昌平区企业招录实习人员483人笔试备考试题附答案解析.docx
- 2025昆明市盘龙区人民医院招聘高校见习人员历年题库(2人)附答案解析.docx
- 2025昆明市石林彝族自治县第十期城镇公益性岗位招聘笔试参考题库(6人)附答案解析.docx
原创力文档

文档评论(0)