计算机程序设计c++ 8-1:数组与指针

计算机程序设计c++ 8-1:数组与指针,第1张

计算机程序设计c++ 8-1:数组指针 一位数组的指针

数组占据内存中一块连续的存储空间,每个数组元素都有
确定的内存地址;可通过定义指向数组元素类型的指针变
量,间接访问数组中的各个元素
C++语言规定,数组名代表数组的首地址(即数组中第一个
元素的地址),它是一个常量指针
如:int a[10], *p=a;
说明a是一个整型数组,p是一个整型的指针变量,且p指
向a数组,其中a为数组名,代表数组的首地址,即&a[0]

指针类型的算术和关系运算 指针的算术运算
  • 指针±整数 ==》指针

假设:int a[10]={10,20,30},*p=a
p+i:表示p所指元素之后的第i个元素的指针
p-i:表示p所指元素之前的第i个元素的指针

int a[10] = {10, 20, 30}
int *p = a;
int i;
cout << *p << endl;  // 10
p++;  // p 指向a[1]
cout << *p << endl;  // 20
p++;  // p 指向a[2] 
cout << *p << endl;  // 30

注意
指针的算术运算与数学中运算不同。如 p的初值为a[0]的址,即1000, 执行p++后,p将指向a[1]元素,这时p的值为1004,而不是1001。
实际上,在C++中指针的算术运算与指针指向的变量类型有关,如p指向int型,因int型变量为4字节长度,所以,p+1相当于p+4,同样p+i相当于p+i*4。如果是double类型,则+8

两个同类型的指针做减法运算

指针2-指针1 ==>整数
常用于计算两个指针之间包含元素的个数。计算方法:
指 针 2 − 指 针 1 元 素 的 字 节 长 度 frac{指针2-指针1}{元素的字节长度} 元素的字节长度指针2−指针1​

如:p1,p2是整型指针,p1中的地址为1000,p2中的地
址为1008。那么p2-p1,相当于(1008-1000)/4,结果为2,说明p1到p2之间包含2个元素。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5099582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存