博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
再NB的肖邦,也弹不出我心中的忧伤......
It's better to burn out than to fade away!!!
tequliaSusan.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
· C/C++学习
· 硬件电路
· uboot移植
· UNIX系统编程
· VIM使用与学习
· Linux网络编程
· Linux内核编程
· Linux设备驱动
· 嵌入式学习
· 杂乱心情
· Linux应用
首页
关于作者
姓名:Tequlia Lv 职业:学生 年龄:26 位置: 个性介绍:再NB的肖邦,也弹不出我心中的忧伤......
||
<<
>>
||
我的分类
文章列表 - C/C++学习
enum枚举型变量的使用
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 <br><br>举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔合中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! <br><br><code><font color="#0000ff">enum</font> box{pencil,pen};<font color="#008000">//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。</font> <br></code><br><br>在这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! <br><br><code><font color="#0000ff">enum</font> box{pencil,pen}; <br><br><font color="#0000ff">enum</font> box box2;<font color="#008000">//或者简写成box box2;</font> <br></code><br><br>再有一种就是在声明的时候同时定义。 <br><br><code><font color="#0000ff">enum</font> {pencil,pen}box,box2; <font color="#008000">//在声明的同时进行定……
查看全文
发表于:2008-07-24 ┆
阅读(97)
┆
评论(0)
extern声明解析
<p class="MsoNormal" style="margin: 0pt 0pt 0pt 18pt; text-indent: -18pt;"><b style=""><span style="" lang="EN-US"><span style=""><font face="Times New Roman"><font size="3">1、</font><span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span></font></span></span></b><b style=""><font size="3"><span style="font-family: 宋体;">声明外部变量</span><span lang="EN-US"></span></font></b></p><p class="MsoNormal" style="margin: 0pt 0pt 0pt 18pt;"><span style="font-family: 宋体;"><font size="3">现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是</font></span></p><p class="MsoNormal" style="margin: 0pt;"><font size="3"><span style="font-family: 宋体;">互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有</span><span lang="EN-US"><font face="Times New Roman">A.cpp</font……
查看全文
发表于:2008-05-20 ┆
阅读(125)
┆
评论(0)
写程序10大习惯和如何提高编程能力(转载)
<div class="defaultcontent"> <div class="forumarticle"> <h3>写程序10大习惯和如何提高编程能力</h3> <div id="message178" class="t_msgfont"> 1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他 专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始 就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。 0 s7 y0 C7 P v& k& T( L3 f/ [<br><br> 2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上, 除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。 2 S; g) [8 E& W3 C2 U2 ]- t<br><br> 3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的……
查看全文
发表于:2008-05-08 ┆
阅读(139)
┆
评论(0)
非常不错的一篇sprintf函数的讲解
<div id="td_content"><strong><font size="1">自《CSDN 社区电子杂志——C/C++杂志》</font></strong> <p>在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。</p> <p>sprintf 是个变参函数,定义如下:<br><font color="#0000ff">int sprintf( char *buffer, const char *format [, argument] ... );</font><br>除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:<br>格式化字符串上。</p> <p><br>printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要 的字符串。<br></p> <p><strong>格式化数字字符串<br></strong>sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代<br>itoa。</p> <p>如:<br>//把整数123 打印……
查看全文
发表于:2008-05-08 ┆
阅读(109)
┆
评论(0)
多维数组指针变量实验和应用
<span><span> 二维数组指针变量说明的一般形式为: <a id="vad_6" name="6" title="百强巡展10-080428@Vogate.com" style="border-bottom: 1px dotted rgb(255, 51, 102); font-size: 1em; text-decoration: underline; cursor: pointer; color: rgb(255, 51, 102);" href="http://action.vogate.com/c/c.php?r=&aid=6292&sid=6235007045041189&click=1&url=http%3A//www.100autoshow.com/line_display.asp%3Fprono%3D986&v=0&s=http%3A//www.programfan.com/article/showarticle.asp%3Fid%3D2689&rn=779329&k=%u7C7B%u578B" target="_blank" onmouseover="this.style.borderBottom='2px #FF3366 solid';var fxEvent=arguments[0];kwmouseover(this,6,fxEvent);" onmouseout="this.style.borderBottom='1px #FF3366 dotted'; kwmouseout(this,6)">类型</a>说明符 (*指针变量名)[长度] 其中“类型说明符”为所指数组的</span><a id="vad_3" name="3" title="2元钱怎么造就500万的富翁?@Vogate.com" style="border-bottom: 1px dotted rgb(255, 51, 102); font-size: 1em; text-decoration: underline; cursor:……
查看全文
发表于:2008-05-07 ┆
阅读(89)
┆
评论(0)
enum的使用方法
<clk>枚举常量是枚举类型中的值,即枚举值。枚举类型是一种<nobr id="clickeyekey0" style="border-bottom: 1px dotted rgb(102, 0, 255); text-decoration: underline; color: rgb(102, 0, 255); background-color: transparent;" onclick="return kwC(event,0)" target="_blank" oncontextmenu="return false;" onmouseover="kwE(event,0, this);" onmouseout="kwL(event,this)" onmousemove="kwM(0);">用户</nobr>定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为: </clk><br> <br> enum <枚举类型名> {<枚举表>}; <br> <br> 它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名后为该类 型的定义体,它是由一对花括号和其中的枚举表所组成,枚举表为一组用逗号分开的由用户命名的符号常量,每个符号常量又称为枚举常量或枚举值。如: <br> <br> (1) enum ……
查看全文
发表于:2008-05-06 ┆
阅读(242)
┆
评论(0)
C语言宏定义学习测试(转载)
<DIV> <H2>1 防止一个头文件重复定义</H2> <P>格式如下</P><PRE>#ifndef COMDEF_H<BR>#define COMDEF_H<BR> //头文件内容<BR>#endif <BR></PRE> <P>这个在很多的头文件的开头都有看到,就是弄不明白,什么叫重复定义???试个程序看看 </P> <UL> <LI>例题1 test1.c </LI></UL><PRE>#include <stdio.h><BR>int main(int argc,char *argv[])<BR>{<BR> printf("lsdkfla\n");<BR>}<BR></PRE> <UL> <LI>例题2 test2.c </LI></UL><PRE>#include <stdio.h><BR>#include <stdio.h><BR>int main(int argc,char *argv[])<BR>{<BR> printf("lsdkfla\n");<BR>}<BR></PRE> <P>现用动态文件的方法编辑 </P><PRE>#gcc test1.c -Wall<BR></PRE> <P>编译结构,没有错误,肯定的。。。。 </P><PRE>#gcc test2.c -Wall <BR></PRE> <P>哦,也没有错误???那这个有什么用呢!!!不理解,是不是能在test2.c编译的结构中a.out中会有两个标准库stdio.h的库连接呢,我编译静态。 编译成静态文件: </P><PRE>#gcc -Wall -static test1.c -o test1<BR></PRE> <P>编译结果,没有错误! </P><PRE>#gcc -Wall -static test2.c -o test2<BR></PRE> <P>编译结构,也没有错……
查看全文
发表于:2008-04-25 ┆
阅读(116)
┆
评论(0)
C语言中常用的宏定义(转载)
<DIV> <P>C语言宏定义技巧(常用宏定义) <BR> <BR>写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 <BR> <BR>1,防止一个头文件被重复包含 <BR>#ifndef COMDEF_H <BR>#define COMDEF_H <BR> //头文件内容 <BR>#endif <BR>2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 <BR>typedef unsigned char boolean; /* Boolean value type. */ <BR> <BR>typedef unsigned long int uint32; /* Unsigned 32 bit value */ <BR>typedef unsigned short uint16; /* Unsigned 16 bit value */ <BR>typedef unsigned char uint8; /* Unsigned 8 bit value */ <BR> <BR>typedef signed long int int32; &n……
查看全文
发表于:2008-04-25 ┆
阅读(103)
┆
评论(0)
Linux系统中的C语言编程
<DIV> <P style="TEXT-INDENT: 2em">一、工具的使用 </P> <P style="TEXT-INDENT: 2em">1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。 </P> <P style="TEXT-INDENT: 2em">2、学会makefile文件的编写规则,并结合使用工具aclocal、autoconf和automake生成makefile文件。 </P> <P style="TEXT-INDENT: 2em">3、掌握gcc和gdb的基本用法。掌握gcc的用法对于构建一个软件包很有益处,当软件包包含的文件比较多的时候,你还能用gcc把它手动编译出来,你就会对软件包中各个文件间的依赖关系有一个清晰的了解。 </P> <P style="TEXT-INDENT: 2em">4、掌握svn/cvs的基本用法。这是linux,也是开源社区最常用的版本管理系统。可以去试着参加sourceforge上的一些开源项目。 </P> <P style="TEXT-INDENT: 2em">二、linux/unix系统调用与标准C库 </P> <P style="TEXT-INDENT: 2em">系统调用应用软件与操作系统的接口,其重要性自然不用说,一定要掌握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)。 </P> <P style="TEXT-INDE……
查看全文
发表于:2008-03-25 ┆
阅读(128)
┆
评论(0)
GLIBC的一些系统的宏定义
Macro: _GNU_SOURCE <br> If you define this macro, everything is included: ISO C, POSIX.1, POSIX.2, BSD, SVID, X/Open, and GNU extensions. In the cases where POSIX.1 conflicts with BSD, the POSIX definitions take precedence. <br> <br> If you want to get the full effect of _GNU_SOURCE but make the BSD definitions take precedence over the POSIX definitions, use this sequence of definitions: <br> <br> #define _GNU_SOURCE <br> #define _BSD_SOURCE <br> #define _SVID_SOURCE <br> <br> Note that if you do this, you must link your program with the BSD compatibility library by passing the `-lbsd-compat' option to the compiler or linker. Note: If you forget to do this, you may get very sange errors at run time.<br><br>Macro:_POSIX_SOURCE<br>_POSIX_SOURCE as well has no effect. Likewise, if you define _GNU_SOURCE, then defining either _POSIX_SOURCE or _POSIX_C_SOURCE or _SVID_SOURCE as well has no effect.<br><br> Macro: _XOPEN_SOURCE <br> If you define this macro, functionalit……
查看全文
发表于:2008-03-19 ┆
阅读(175)
┆
评论(0)
回调函数的学习
<DIV> <BLOCKQUOTE>软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在不同软件架构中的实现。</BLOCKQUOTE><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--> <P><A name=1><SPAN class=atitle>1 什么是回调</SPAN></A></P> <P>软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步……
查看全文
发表于:2007-11-10 ┆
阅读(261)
┆
评论(0)
(转载)算法的力量
<DIV> <H1 style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt"><FONT face=宋体><SPAN style="FONT-SIZE: 16.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">李开复:算法的力量</SPAN><SPAN lang=EN-US style="FONT-SIZE: 16.5pt; FONT-FAMILY: Verdana"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></H1> <P style="BACKGROUND: #eeeeee"><SPAN style="FONT-SIZE: 11pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在</FONT></SPAN><SPAN……
查看全文
发表于:2007-11-09 ┆
阅读(212)
┆
评论(0)
自己实现strcat()
/*<br> 10 * Note : The user must be sure the destination string of the <br> 11 * mystrcpy() is large enough, if the space is not large<br> 12 * enough, then anything might happen.<br> 13 */<br> 14 #include <stdio.h><br> 15 #include <string.h><br> 16 <br> 17 char *mystrcpy(char *dest, char const *src)<br> 18 {<br> 19 char *ptr = dest; /*declare a template pointer point to dest position*/<br> 20 <br> 21 <br> 22 if (dest == NULL || src == NULL) { /*if the dest or src NULL error!*/<br> 23 printf("the argument is error !\n");<br> 24 return NULL;<br>&n……
查看全文
发表于:2007-11-01 ┆
阅读(1078)
┆
评论(2)
自己实现strcmp()
15 int strcmp_self_use_array(char *s, char *t)<br> 16 {<br> 17 int i;<br> 18 <br> 19 for (i = 0; s[i] == t[i]; i++) {<br> 20 if (s[i] == '\0')<br> 21 return 0;<br> 22 }<br> 23 /*<br> 24 * I come out this problem, the return value is wrong at the begin of program<br> 25 * when the s[i] not be equal to t[i] then excute this sentence : return *s-*t<br> 26 * this is a big wrong!!! because the *s = 'h' and the *t = 'h',so everytime call<br> 27 * this function ,if the first bit of these two string are equal,the return value <br> 28 * will be 0!!!<br> 2……
查看全文
发表于:2007-11-01 ┆
阅读(2010)
┆
评论(1)
finish the strcat()
17 char *mystrcat(char *dest, char *source)<br> 18 {<br> 19 /*define a pointer point to dest*/<br> 20 char *ptr = dest;<br> 21 <br> 22 /*the ptr and source could not be NULL*/<br> 23 if (ptr == NULL || source == NULL) {<br> 24 printf("the input string is error!\n");<br> 25 return NULL;<br> 26 }<br> 27 <br> 28 /*move the ptr pointer to point the end of destination string*/<br> 29 while (*ptr != '\0')<br> 30 ptr++;<br> 31 <br> 32 /* copy source to ptr*/<br> 33 while (*ptr++ = *source++)<br> 34 ;<br> ……
查看全文
发表于:2007-11-01 ┆
阅读(260)
┆
评论(0)
自己实现库函数strstr()
char *mystrstr(char *s, char *t)<br> 16 {<br> 17 if (NULL == s || NULL == t) {<br> 18 printf("please input right string!\n");<br> 19 return NULL;<br> 20 }<br> 21 <br> 22 char *s_temp; /*the s_temp point to the s*/<br> 23 char *m_temp; /*the mv_tmp used to move in the loop*/<br> 24 char *t_temp; /*point to the pattern string*/<br> 25 <br> 26 s_temp = s;<br> 27 <br> 28 /*s_temp point to the s string*/<br> 29  ……
查看全文
发表于:2007-11-01 ┆
阅读(754)
┆
评论(0)
C语言static变量的用法
<DIV><FONT face=宋体> 1、概述</FONT> <DIV><FONT size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> static 声明的变量在C语言中有两方面的特征:</FONT></DIV> <DIV><FONT face=宋体 size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。</FONT></DIV> <DIV><FONT face=宋体 size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。</FONT></DIV> <DIV><FONT face=宋体 size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> 2、问题:Static的理解</FONT></DIV> <DIV><FONT face=宋体 size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> 关于static变量,请选择下面所有说法正确的内容:</FONT></DIV> <DIV><FONT face=宋体 size=2></FONT> </DIV> <DIV><FONT face=宋体 size=2> A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合……
查看全文
发表于:2007-06-18 ┆
阅读(355)
┆
评论(0)
从两道经典试题谈C/C++中联合体(union)的使用
<DIV> <DIV align=center><STRONG><SPAN style="FONT-SIZE: 16pt">从两道经典试题谈</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 16pt">C/C++</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 16pt">中联合体(</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 16pt">union</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 16pt">)的使用</SPAN></STRONG></DIV> <DIV style="TEXT-INDENT: 21pt"><STRONG>试题一:</STRONG>编写一段程序判断系统中的CPU是Little endian还是Big endian模式?</DIV> <DIV style="TEXT-INDENT: 21pt"><STRONG>分析:</STRONG></DIV> <DIV style="TEXT-INDENT: 21pt">作为一个计算机相关专业的人,我们应该在计算机组成中都学习过什么叫Little endian和Big endian。Little endian和Big endian是CPU存放数据的两种不同顺序。对于整型、长整型等数据类型,Big endian认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而Little endian则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放数据的低位字节到高位字节)。</DIV> <DIV style="TEXT-INDENT: 10.5pt">例如,假设从内……
查看全文
发表于:2007-06-17 ┆
阅读(1227)
┆
评论(0)
malloc,calloc,realloc等内存分配函数区别
<DIV> <P><FONT color=#000000>三个函数的声明分别是:<BR>void* <FONT style="BACKGROUND-COLOR: #ff00ff">realloc</FONT>(void* ptr, unsigned newsize);<BR>void* <STRONG style="COLOR: black; BACKGROUND-COLOR: #ffff66">malloc</STRONG>(unsigned size);<BR>void* <STRONG style="COLOR: black; BACKGROUND-COLOR: #a0ffff">calloc</STRONG>(size_t nelem, size_t elsize);<BR>都在stdlib.h函数库内<BR><BR>它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL<BR><BR><STRONG style="COLOR: black; BACKGROUND-COLOR: #ffff66">malloc</STRONG>用于申请一段新的地址,参数size为需要内存空间的长度,如:<BR>char* p;<BR>p=(char*)<STRONG style="COLOR: black; BACKGROUND-COLOR: #ffff66">malloc</STRONG>(20);<BR><BR><STRONG style="COLOR: black; BACKGROUND-COLOR: #a0ffff">calloc</STRONG>与<STRONG style="COLOR: black; BACKGROUND-COLOR: #ffff66">malloc</STRONG>相似,参数nelem为申请地址的单位元素长度,elsize为元素个数,如:<BR>char* p;<BR>p=(char*)<STRONG style="COLOR: black; BACKGROUND-COLOR: #a0ffff">calloc</STRONG>(sizeof(char),20);……
查看全文
发表于:2007-06-05 ┆
阅读(408)
┆
评论(0)
const修饰符的一些理解
<DIV> const类型限定修饰符它能够把一个对象转换成一个常量(constant)。例如:const int bufsize=512</DIV> <DIV>定义bufsize是一个常量,将其初始化为512。在程序中任何改变这个值的企图都将导致编译错误。</DIV> <DIV> 因为常量在定义后就不能被修改,所以它必须被初始化,未初始化的常量定义将导致编译的错误。</DIV> <DIV>const double pi;//错误:未初始化变量</DIV> <DIV>指向常量的指针,例: const double *cptr; 这句的意思是cptr是一个指向double类型的const对象的指针。(<FONT color=#ff0000>从右向左的读为“cptr是一个指向double类型的,被定义成const对象的指针”)</FONT>一定要注意的是cptr这里是一个普通的指针,它指向了一个const类型的常量!!!我们可以将cptr重新赋值使其指向不同的地址,但是如果cptr指向的一个const类型的变量的值将不会被改变,但是不能修改cptr所指向的对象。<FONT color=#ff0000>const对象的地址只能赋值给指向const对象的指针。但是指向const对象的指针可以被赋值以一个非const对象的地址</FONT>。</DIV> <DIV>在实际的程序中,指向const的指针常被用做函数的形式参数来保证被传递给函数的实际对象……
查看全文
发表于:2007-04-16 ┆
阅读(389)
┆
评论(1)