📄 c51中关于指针的种种用法(学单片机必看)--云清燕.htm
字号:
小结一下:大家看到了以上的6种情况,其中效率最高的是第2种情况,既可以正确访问ram区又节约了代码,效率最差的是第
6<BR>种,但不是说大家只使用第2种方式就可以了,还要因情况而定,一般说来应用51系列的系统架构的内部ram资源都很紧张,最好大家<BR>在定义函数内部或程序段内部的局部变量使用内ram,而尽量不要把全局变量声明为内ram区中。所以对于全局指针变量我建议使用第<BR>3
种情况,而对于局部的指针变量使用第2种方式。</P>
<DIV class=postText>
<P>与指针有关的各种说明和意义见下表。<BR>int *p; p为指向整型量的指针变量;</P>
<P>int xdata *p; 存在外部数据RAM;</P>
<P>int data *p; 存在内部数据RAM; </P>
<P>int code *p; 存在程序代码空间;</P>
<P>int data *xdata p; 外部RAM指针,指向内部RAM整形数据</P>
<P>int xdata *data p; 内部RAM指针,指向外部RAM整形数据</P>
<P> <BR>int *p[n];
p为指针数组,由n个指向整型量的指针元素组成。</P>
<P><BR>int (*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n</P>
<P><BR>int *p() p为返回指针值的函数,该指针指向整型量</P>
<P><BR>int (*p)() p为指向函数的指针,该函数返回整型量</P>
<P><BR>int **p p为一个指向另一指针的指针变量,该指针指向一个整型量。</P>
<P>{ int x;<BR> int *px;</P>
<P>
//下面这些表示虽然很烦,但是生成的代码却及其简洁:</P>
<P> //将 xdata 型指针
0x4000 赋给 px<BR>
px=(int xdata *)0x4000;</P>
<P> //表示从 xdata
0x4000处取一个 char
给x<BR> x=*((char
xdata *)0x4000);</P>
<P>}</P>
<P>阅读组合说明符的规则是“从里向外”。<BR>从标识符开始,先看它右边有无方括号或园括号,如有则先作出解释,再看左边有无*号。
如果在任何时候遇到了闭括号,则在继续之前必须用相同的规则处理括号内的内容。例如:
<BR>int*(*(*a)())[10]<BR>↑ ↑↑↑↑↑↑<BR> 7 6 4
2 1 3
5<BR>上面给出了由内向外的阅读顺序,下面来解释它:<BR>(1)标识符a被说明为;<BR>(2)一个指针变量,它指向;<BR>(3)一个函数,它返回;<BR>(4)一个指针,该指针指向;<BR>(5)一个有10个元素的数组,其类型为;<BR>(6)指针型,它指向;<BR>(7)int型数据。<BR>因此a是一个函数指针变量,该函数返回的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。</P></DIV></DIV></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center
border=0>
<TBODY>
<TR>
<TD width="74%"><A
href="http://liyanbingabc.zhmy.com/archives/2006/82231.shtml#">阅读全文<SPAN
id=ob_logreaded></SPAN></A> | <A
href="http://liyanbingabc.zhmy.com/archives/2006/82231.shtml#cmt">回复(0)</A>
<SPAN id=ob_logm82231></SPAN>| <A
href="http://www.zhmy.com/showtb.asp?id=82231"
target=_blank>引用通告<SPAN id=ob_tbnum></SPAN></A> | <A
href="http://www.zhmy.com/user_post.asp?logid=82231"
target=_blank>编辑</A></TD>
<TD width="26%">
<DIV
align=right> </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
<DIV id=morelog>
<UL>
<LI>上一篇:<A
href="http://liyanbingabc.zhmy.com/archives/2006/82229.html">CRC 校验</A>
<LI>下一篇:<A
href="http://liyanbingabc.zhmy.com/archives/2006/82968.shtml">一个日本人挨打的笑话(超强!)</A>
</LI></UL></DIV>
<DIV id=form_comment>
<DIV id=gg_usercomment></DIV><A name=cmt></A>
<DIV class=title>发表评论:</DIV>
<FORM id=commentform name=commentform onsubmit="return Verifycomment()"
action=http://www.zhmy.com/savecomment.asp?logid=82231 method=post>
<DIV class=d1><LABEL>昵称:<INPUT id=UserName maxLength=20
name=UserName></LABEL></DIV>
<DIV class=d2><LABEL>密码:<INPUT id=Password type=password maxLength=20
name=Password> (游客无须输入密码)</LABEL></DIV>
<DIV class=d3><LABEL>主页:<INPUT id=homepage maxLength=50 size=42
value=http:// name=homepage></LABEL></DIV>
<DIV class=d4><LABEL>标题:<INPUT id=commenttopic maxLength=50 size=42
value=Re:C51中关于指针的种种用法(学单片机必看) name=commenttopic></LABEL></DIV>
<DIV class=d5><INPUT id=edit type=hidden name=edit>
<DIV id=oblog_edit>网志中国数据载入中...</DIV></DIV>
<DIV class=d6><SPAN id=ob_code></SPAN><INPUT onclick='oblog_edittext.createTextRange().execCommand("Copy");' type=submit value= 提 交 ></DIV></FORM></DIV></TD>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg3.jpg> </TD>
<TD vAlign=top
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg2.jpg
colSpan=2>
<TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
<TBODY>
<TR>
<TD height=9>
<DIV align=center><STRONG>
<DIV id=ob_login>网志中国数据载入中...</DIV><BR></STRONG></DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>我的专题</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV align=center>
<DIV id=subject>网志中国数据载入中...</DIV></DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>日志更新</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=newblog>网志中国数据载入中...</DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>最新评论</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=comment>网志中国数据载入中...</DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>留言板</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=newmessage>网志中国数据载入中...</DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>链接</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=links></DIV>
<DIV id=gg_userlinks></DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>搜索</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=search>网志中国数据载入中...</DIV></TD></TR>
<TR>
<TD
background=C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_list_bg1.jpg
height=20>
<DIV align=center><STRONG>Blog信息</STRONG></DIV></TD></TR>
<TR>
<TD>
<DIV id=info>网志中国数据载入中...</DIV>
<DIV id=aobomusic></DIV></TD></TR></TBODY></TABLE></TD>
<TD><IMG height=160 src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/spacer.gif"
width=1 border=0></TD></TR>
<TR>
<TD colSpan=10><IMG height=20
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r8_c1.jpg" width=760
border=0 name=usermoban3_r8_c1></TD>
<TD><IMG height=20 src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/spacer.gif"
width=1 border=0></TD></TR>
<TR>
<TD><IMG height=23
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r9_c1.jpg" width=28
border=0 name=usermoban3_r9_c1></TD>
<TD bgColor=#945142 colSpan=2> </TD>
<TD colSpan=3></TD>
<TD bgColor=#945142 colSpan=3> </TD>
<TD><IMG height=23
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r9_c10.jpg" width=28
border=0 name=usermoban3_r9_c10></TD>
<TD><IMG height=23 src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/spacer.gif"
width=1 border=0></TD></TR>
<TR>
<TD><IMG height=18
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r10_c1.jpg" width=28
border=0 name=usermoban3_r10_c1></TD>
<TD colSpan=8><IMG height=18
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r10_c2.jpg" width=704
border=0 name=usermoban3_r10_c2></TD>
<TD><IMG height=18
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/usermoban3_r10_c10.jpg" width=28
border=0 name=usermoban3_r10_c10></TD>
<TD><IMG height=18 src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/spacer.gif"
width=1 border=0></TD></TR></TBODY></TABLE><SPAN id=gg_userbot></SPAN>
<DIV id=powered><A href="http://www.zhmy.com/" target=_blank><IMG
alt="Powered by zhmy.com."
src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/oblog_powered.gif" border=0></A></DIV>
<SCRIPT src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/200609.htm"></SCRIPT>
<SCRIPT src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/count.htm"></SCRIPT>
<SCRIPT src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/commentedit.htm"></SCRIPT>
<SCRIPT
src="C:\Documents and Settings\Administrator\桌面\新建文件夹\C51中关于指针的种种用法(学单片机必看)--云清燕.files\count(1).htm"></SCRIPT>
<SCRIPT src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/login.htm"></SCRIPT>
<SCRIPT src="C51中关于指针的种种用法(学单片机必看)--云清燕.files/ShowXml.htm"></SCRIPT>
<SCRIPT
src="C:\Documents and Settings\Administrator\桌面\新建文件夹\C51中关于指针的种种用法(学单片机必看)--云清燕.files\count(2).htm"></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -