📄 subject_23709.htm
字号:
<p>
序号:23709 发表者:吾讲得 发表日期:2002-12-06 00:05:26
<br>主题:请大家看看里面的程序,我有问题想大家帮我解答,谢谢!
<br>内容:1. #include<iostream.h><BR>2. #include<string.h><BR>3. class Reader<BR>4. {private:<BR>5. char name[10];<BR>6. public:<BR>7. long index;<BR>8. char *get_name(){return name;}<BR>9. void set_name(char *i_name);};<BR>10.void Reader::set_name(char *i_name)<BR>11.{strcpy(name,i_name);}<BR>12.void main()<BR>13.{Reader A_Reader;<BR>14.char name[10];<BR>15.cout<<"Please input your name?";<BR>16.cin>>name;<BR>17.A_Reader.index=1;<BR>18.A_Reader.set_name(name);<BR>19.cout<<"your name is";<BR>20cout<<A_Reader.get_name();<BR>21.cout<<"(index"<<A_Reader.index;<BR>22.cout<<")\n";}<BR>本题执行结果为:Please input your name?JOHN<BR> Your name is JOHN(index1)<BR> please any key to continue<BR>第8句是什么意思?比如char *ptr就是指向字符型的指针变量ptr,但char *get_name()是什么意思?在程序里的作用是什么?<BR>第9句定义了一个指针变量i_name作为set_name的参数,当执行到第18句时就将数组name[10]的首地址传给函数set_name的参数,然后执行到第11句时,将i_name复制给name(这里我不明,为什么可以地址复制给地址),输出结果是字符串而不是地址,为什么?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2002-12-06 02:13:45
<br>内容:http://www.copathway.com/cndevforum/subject_view.asp?subject_id=23708&forum_id=59
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:白云 回复日期:2002-12-06 09:29:35
<br>内容:char *get_name()表示get_name()是类Reader的一个成员函数,返回的是字符指针,第11句并非复制地址,strcpy()的作用是将字符串进行复制,在这里是将main()函数中的name数组复制给Reader类里的name数组中,至于输出cout,如果输出字符串指针的话,一定输出的是字符串而不会是指针地址。
<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-12-06 16:29:03
<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>
回复者:lijing2001 回复日期:2002-12-07 20:20:39
<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>
回复者:tjhe 回复日期:2002-12-07 20:59:22
<br>内容:字符串的第一个字符的地址即字符串的地址<BR>cout << &(name[0]);
<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-12-08 10:37:48
<br>内容:我用printf比较熟(老土吧,呵呵),你可以采%p开关,这个格式是专门用于输出指针的,输出时是以16进制输出。<BR>#include <stdio.h><BR>#include <string.h><BR>main()<BR>{<BR> char p[]="aaa";<BR> printf("\nAddress as:\t0x%p\n",p);<BR> getchar();<BR>}
<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 + -