把一维数组怎么变为二级指针?

dfczj 2007-06-14 11:58:37
因为某函数的参数为二级指针,
function1(char **p){}
我现在要把p作为参数传给这个函数,该怎么转换?
char p[] = "abcd";
...全文
321 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
badljc 2007-06-15
  • 打赏
  • 举报
回复
指针不等于地址,指针是一种代替地址的变量,它本身还是变量,在内存中分4个字节(好像是),既然是变量,它本身也是具有地址的,&p就是指针的地址,可被视为一个指针,即二级指针,我刚学,理解的不到位,请大家批评,谢谢
badljc 2007-06-15
  • 打赏
  • 举报
回复
弄昏了,&p就是一个指针,p本身还是一个指针,所以&p是二级指针,可以这样理解麽?
Dolores 2007-06-15
  • 打赏
  • 举报
回复
include<stdio.h>
#include<stdlib.h>
int function1(char **p);

int main(int argc,char* argv[])
{
char **p = (char**)"abcd\0";
function1(p);
return 0;
}

int function1(char **p)
{
printf("%s",p);
return 0;
}
ylzyd12345 2007-06-15
  • 打赏
  • 举报
回复
&p是对的~ P是数组的首地址.&P就是2级指针!!!!!!!!
tsj3456 2007-06-15
  • 打赏
  • 举报
回复
应该是这样的 不过在c++中 可以直接使用引用来解决这个问题的 所用的表达式就是&p
godwater8 2007-06-14
  • 打赏
  • 举报
回复
2级指针通常用于参数作为程序输出的情况
如果你非要这样用的话

function1(&p)就行了
dfczj 2007-06-14
  • 打赏
  • 举报
回复
想要变通的话就把char p[] = "abcd";改成char p[1][] = "abcd";
-------------------------------------------------------
dev c++中试过了,不行.
Dolores 2007-06-14
  • 打赏
  • 举报
回复
想要变通的话就把char p[] = "abcd";改成char p[1][] = "abcd";
todototry 2007-06-14
  • 打赏
  • 举报
回复
&p是存放地址的指针的地址,所以地址的地址地
todototry 2007-06-14
  • 打赏
  • 举报
回复
p是数组名,赋值时拿得是数组首元素得地址
dfczj 2007-06-14
  • 打赏
  • 举报
回复
数组char p[]="abcd";的p和&p不就是一回事吗?
sniperhuangwei 2007-06-14
  • 打赏
  • 举报
回复
我晕,谁跟你说p和&p是一回事的.
dfczj 2007-06-14
  • 打赏
  • 举报
回复
godwater8(仙水) (

function1(&p)//这样真的行吗?

p跟&p是一回事.

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧