新微赢技术网

标题: 指针问题 [打印本页]

作者: 52巧克力aiq    时间: 2009-11-3 03:29
标题: 指针问题
#include <iostream>
int main()
{
    using namespace std;
    const char *p[5] =
    {                             
        "AAAAAAAA",
        "BBBBBBBB",
        "CCCCCCCC",
        "DDDDDDDD",
        "EEEEEEEE"
    };
for (int i=0;i<5;++i)
{
  cout << p +i<< " : "<<p[i] <<endl;
  
}
cin.get();
}

有人指告诉我:这里p代表是什么,p[0]代表什么!
如果p指向的是字符串的起始地址,那么怎么得到p指针数组的,本身地址?
作者: 青松    时间: 2009-11-3 03:29
p是数组p的首地址,就是p[o]的地址,p+i不是p的地址+i,而是p的地址

[[italic] 本帖最后由 yuzhiyue 于 2007-12-8 15:53 编辑 [/italic]]
作者: ⊿°屵重缺銭    时间: 2009-11-3 03:29
原帖由 [bold][underline]yuzhiyue[/underline][/bold] 于 2007-12-8 15:52 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1138210&ptid=191154][/url]
p是数组p的首地址,就是p[o]的地址,p+i不是p的地址+i,而是p的地址


我的意思是怎么得到p指针本身的地址,又怎么得到P指向的地址,意思就是说
在这个例子当中,P的地址是多少,AAAAAAA的地址是多少
作者: 绝爱吗?    时间: 2009-11-3 03:29
这里p你定义的是数组名,不是指针,代表的是数组(p[5])的首地址,p+i带表的是数组首地址向后移i个单位(字符串在类存中占一个字节,移一个字节)。p的地址和AAAAAAAAAA的地址是一样的。p只是AAAAAAAAAA的名字,由于p是数组名,单独使用它可以代表数组首地址。p代表的是地址,而指针变量存的是地址。可以把p直接赋值给指针变量,而不用加&符号。
作者: 小点点14504    时间: 2009-11-3 03:29
p[0]就是p这个数组中第0个元素,由于这是个指针数组,所以p[0]中放的是地址,根据题意应该是第一个字符串"AAAAAAA"在内存中存放区域的起始地址,至于具体地质是多少你不用知道的.也没有必要知道




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2