📄 pointerarithmetic.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="css/stdlayout.css" type="text/css">
<link rel="stylesheet" href="css/print.css" type="text/css">
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<title>指标的运算</title>
</head>
<body>
<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>
<h1><a href="CppGossip.html">C++ Gossip: 指标的运算</a></h1>
除了指定运算子=、取址运算子&与取值运算子*之外,还有+、-、++、--、+=与-=等运算子可以使用在指标上。 <br>
<br>
指标的加法与减法与一般数值的加减法不同,在指标运算上加 1
,是表示前进一个资料型态的记忆体长度,例如在int型态的指标上加1,是表示在记忆体位址上前进4个位元组的长度,如以下的例子所示范的: <br>
<br>
<pre>#include <iostream> <br>using namespace std; <br><br>int main() { <br> int *ptr = 0;<br><br> cout << "ptr位置:" << ptr <br> << endl;<br> cout << "ptr+1:" << ptr+1 <br> << endl; <br> cout << "ptr+2:" << ptr+2 <br> << endl;<br> <br> return 0; <br>}</pre>
<br>
执行结果: <br>
<small> </small><small> </small><small> </small><small> </small><small>
</small>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2"
cellspacing="2">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);"><small><span
style="color: rgb(255, 255, 255);">ptr位置:0<br>
ptr+1:0x4<br>
ptr+2:0x8</span><span style="color: rgb(255, 255, 255);"></span></small></td>
</tr>
</tbody>
</table>
<br>
这个记忆体位址的显示单位是位元组;由于宣告的是int型态的指标,所以每加1就会前进4个位元组的长度,如果您宣告的是double型态的指标,则每加
1就会前进8个位元组,如以下的程式所示: <br>
<br>
<pre>#include <iostream> <br>using namespace std; <br><br>int main() { <br> double *ptr = 0;<br><br> cout << "ptr位置:" << ptr <br> << endl;<br> cout << "ptr+1:" << ptr+1 <br> << endl; <br> cout << "ptr+2:" << ptr+2 <br> << endl;<br> <br> return 0; <br>}</pre>
<br>
执行结果: <br>
<small> </small><small> </small><small> </small><small> </small><small>
</small>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2"
cellspacing="2">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);"><small><span
style="color: rgb(255, 255, 255);">ptr位置:0<br>
ptr+1:0x8<br>
ptr+2:0x10</span><span style="color: rgb(255, 255, 255);"></span></small></td>
</tr>
</tbody>
</table>
<br>
以上所举的例子为指标的加法,在减法上观念也是相同,对指标减1即是在记忆体位址上退后一个资料型态单位的长度。 <br>
<br>
<br>
<br>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -