当前位置: 代码迷 >> C语言 >> 对如下指针数组的操作为什么一执行就错误?
  详细解决方案

对如下指针数组的操作为什么一执行就错误?

热度:117   发布时间:2008-05-09 10:52:29.0
对如下指针数组的操作为什么一执行就错误?
void main()
{
char *p[100],w[3000],*q=w;
scanf("%s",&p[0]);应该是这个地方错了,但是我不知道为什么?
printf("%s",p[0]);
}

void main()
{
char *p[100],w[3000],*q=w;
scanf("%s",p[0]=q);这样就可以,这个我到是明白,不过就是不知道上面那个为什么错误
printf("%s",p[0]);
}
搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
char *p[100],w[3000],*q=w;
scanf("%s",&p[0]);
printf("%s",&p[0]);//这
}
----------------解决方案--------------------------------------------------------
void main()
{
char *p1;
scanf("%s",&p1);
printf("%s",&p1);
}和
void main()
{
char *p1;
scanf("%s",p1);
printf("%s",p1);
}有什么区别,最好详细点,谢谢了
----------------解决方案--------------------------------------------------------
scanf("%s",&p[0]);

char *p[100] //p[0]已经是地址了

&p[0],地址的地址

地址是常量,不是变量不能被赋值
----------------解决方案--------------------------------------------------------
printf("%s",p[0]);也错了

*p[0]才对
----------------解决方案--------------------------------------------------------
我想问问如下两个为什么能正常运行并显示?
void main()
{
char *p1;
scanf("%s",p1);
printf("%s",p1);
}和void main()
{
char *p1;
scanf("%s",&p1);
printf("%s",&p1);
}
----------------解决方案--------------------------------------------------------
你的编译器太高级了
----------------解决方案--------------------------------------------------------
LS有道理,你用VC++ 6.0调试一下看,。。。。。。
----------------解决方案--------------------------------------------------------
我刚学C用的C-FREE
----------------解决方案--------------------------------------------------------
我也很不理解
数组名代表的就是数组的首地址
还有地址的地址运行出来会是什么东西?
我的编译器不能理解
----------------解决方案--------------------------------------------------------
  相关解决方案