subject_17889.htm

来自「一些关于vc的问答」· HTM 代码 · 共 27 行

HTM
27
字号
<p>
序号:17889 发表者:cmoth 发表日期:2002-10-16 13:12:04
<br>主题:为什么下面的小程序出错?
<br>内容:int main(int argc, char* argv[])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char sss [70] ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (strcmp(sss ,""))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; strcat(sss,"kkkkk")&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>但如果我把sss的定义改成:char sss [70]="" ;<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>回复者:徐景周 回复日期:2002-10-16 13:19:32
<br>内容:对啊,你的sss[70]没有初始化,怎么进行比较啊,strcmp中禁止字符串没有初始化的,那怕你给它赋个空字符也行。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-10-16 13:20:01
<br>内容:char sss[70];这样并没有将字符数组初始化啊<BR>这样sss里的内容是不确定的!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cmoth 回复日期:2002-10-16 13:43:31
<br>内容:但字符数组的定义意味着已经分配了存储空间,虽然里面的内容可能乱七八糟,<BR><BR>我知道了,初始化的作用是不是就是向数组中写入结束标志,标示数组从什么地方起未被使用?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:紫瑗 回复日期:2002-10-16 14:06:00
<br>内容:凡是使用变量,都应该初始化一个值,这样子比较安全。<BR>int main(int argc, char* argv[])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char sss [70] ;<BR>memset(sss, 0, sizeof(char) * 70);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (strcmp(sss ,""))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; strcat(sss,"kkkkk")&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR>2002-10-16 14:07:00

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?