📄 subject_39225.htm
字号:
<p>
序号:39225 发表者:谢亮 发表日期:2003-05-09 10:04:04
<br>主题:关于静态变量的新手问题!
<br>内容:《THINKING IN C++》中有这样一个小程序:<BR><BR>#include<iostream.h><BR>char oneChar(const char* charArray=0)<BR>{<BR><BR> static const char* s;<BR> if(charArray)<BR> {<BR> s=charArray;<BR> return* s;<BR> }<BR> else if(*s=='\0')<BR> return 0;<BR> return *s++;<BR><BR>}<BR><BR>char* a="kevvy love juanjuan";<BR><BR>void main()<BR>{<BR> oneChar(a);<BR> char c;<BR> while((c=oneChar())!=0)<BR> cout<<c<<endl;<BR>}<BR><BR><BR>我有几个问题不明白,请高手指点:<BR>1:函数char oneChar(const char* charArray=0),为什么必须在参数中就命const char* charArray=0,我换了其他几中方法,如 <BR> char oneChar(const char* charArray);<BR> const char* charArray=0;<BR>都会告诉我有问题!<BR><BR>2:while((c=oneChar())!=0)<BR> cout<<c<<endl;<BR><BR>这里面函数oneChar()为什么可以没有参数???<BR><BR><BR>3:表达式if(charArray)是什么意思???<BR> 以前见过的都是IF(A《=B)这样的,<BR>而if(charArray),不知道????<BR>请各位大哥指教???<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:---信风--- 回复日期:2003-05-09 11:15:39
<br>内容:1. const char* 表示这个参数是char型的指针,而且指针指向的内容不可变;=0表示这个参数的默认值是0,即当调用这个参数时,没有给它参数,就使用默认参数0。这里的const char* charArray=0和一般的赋值语句不一样。<BR><BR>2. 见1默认参数。<BR><BR>3. 0为false,非0为true。<BR>if( charArray ),是用charArray的值来做判断,如果charArray的值为NULL(NULL的值是0),就相当于if( false );不为NULL时,相当于if(true)。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -