24小时热门版块排行榜    

查看: 605  |  回复: 6

倒计时

新虫 (初入文坛)

[求助] 求助代码

#include<iostream.h>
void main()
{
        char s[21],*ps=s;
        for(int i=0;i<20;i++)
                s='A'+i;
        s[20]='\0';
        ps++;
        cout<<"ps="<<ps<<endl;                                   //为什么这里应该输出字符数组的首地址,但实际却输出PS=BCDEFGHIJKLMNOPQRST
        ps+=2;
        cout<<"ps="<<ps<<endl;                                   //为什么这里应该输出字符数组的首地址,但实际却输出PS=DEFGHIJKLMNOPQRST
        for(ps=&s[19];ps>&s[11];ps-=2)
        {
                cout<<"*ps="<<*ps<<endl;                 
                cout<<"ps="<<ps<<endl;
        }
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刚子ing

银虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
倒计时: 金币+5 2013-11-14 08:40:07
char s[21],*ps=s;把char换成int型就可以了或在pss输出前加上&就可以了。char类型数组名或char数组指针cout输出是把数组从第一个元素开始逐个输出字符,直到遇到'\0'位置。与整型的数组名的输出是不相同的。
年少轻狂
2楼2013-11-12 22:08:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lenovo001

禁虫 (正式写手)

感谢参与,应助指数 +1
本帖内容被屏蔽

3楼2013-11-13 06:06:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longe87

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
ps在这里是一个字符指针
(1) ps++之后, 指针向后移动一个单位地址, 也就指向了 B的地址。
(2)同理, p+=2之后, ps 又移动了两个单位地址 也就指向了D的地址。
看竹何须问主人
4楼2013-11-13 07:15:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

倒计时

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by lenovo001 at 2013-11-13 06:06:44
首先,指针ps指向字符数组s的首地址s,ps++后,指针指向s;同理,ps+=2后,ps指向s,输出就如楼主所言了!请楼主好好理解下指针的含义就能弄明白了!
...

具体再问下,地址和内容,究竟什么区别。就如这里,既然是输出地址,为什么将该地址后所有数组的内容都输出,难道这就是地址?
5楼2013-11-13 13:12:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
5楼: Originally posted by 倒计时 at 2013-11-13 13:12:37
具体再问下,地址和内容,究竟什么区别。就如这里,既然是输出地址,为什么将该地址后所有数组的内容都输出,难道这就是地址?...

字符串是特殊情况
要夢遊,不要催眠。
6楼2013-11-13 13:50:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

倒计时

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by 绿遍山原 at 2013-11-13 13:50:37
字符串是特殊情况...

能具体解释下吗?
7楼2013-11-13 15:56:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 倒计时 的主题更新
信息提示
请填处理意见