📄 c72_5.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>例子 </title>
<script language="javascript" src="../../layer_obj.js">
</script>
</head>
<body bgcolor="#ccefcc">
<div align="center"><center>
<table border="6" width="526" cellspacing="0" cellpadding="6" height="150" bordercolor="#FF9933">
<tr>
<th width="750" bgcolor="#FF9933">程序</th>
</tr>
<tr>
<td ALIGN="center" width="750" bgcolor="#00FFFF"><p align="left">#define PX(X)
printf("X = %s; value = %u;&X = %u", X, X, &X)<br>
main()<br>
{<br>
static char *mesg = "fool!";<br>
static char *copy;<br>
copy = mesg;<br>
printf("%s\n", copy);<br>
PX(mesg);<br>
PX(copy);<br>
}</td>
</tr>
</table>
</center></div>
<p><br>
<script language="javascript">
<!--
var name="output";
var content='输出<br>mesg = fool!; value = 4; &mesg = 32<br>copy = fool!; value = 4; &copy = 34<br>';
createLayer(name,250,270,400,80,false,content);
name1="button";
content1='想一下,<a href="javascript:showLayer(name)"> 输出是什么?</a><br>';
createLayer(name1,-50,270,400,50,true,content1);
slideLayer(name1,10,270,50);
-->
</script></p>
<blockquote>
<p> </p>
<p>这个输出有没有什么道理?<br>
<br>
<img src="../img/c72_51.gif" alt="c72_51.gif (2921 bytes)" align="right" WIDTH="281" HEIGHT="116">让我们来解释一下吧。<br>
先研究一下 PX() 的输出。<br>
首先, X 先为 mesg, 而后为 copy, 是作为一个 %s 打印出来的。毫无疑问,
所有的串都是 "fool!"<br>
下面, 让我们看最后一项。<br>
第三项是 &X, 即 X 的地址。而两个指针 mesg 和 copy 分别被存贮在 32
和 34 的位置上。<br>
&mesg = 32<br>
&copy = 34<br>
现在来讨论一下第二项, 我们称之为 value , 这就是 X
本身。指针的值是它所包含的地址, 我们看到 mesg 指向 4 的位置,
copy 也是一样。<br>
这就意味着我们并没有拷贝串本身, copy = mesg;
所做的一切就是使第二个指针指向同一个串。当然,
这样做是十分有效的。</p>
</blockquote>
<p align="center"><a href="javascript:close()">关闭</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -