请教一个简单的printf问题
#include<stdio.h>void main()
{
char d[3],*q;
scanf("%s",d);
printf("%s\n",d);
scanf("%s",q);
printf("%s",q);
getch();
}
scanf中的d和q都可以理解成是首地址,那么printf中的呢?那d和q如何理解呀? 大哥们给指教下呀
----------------解决方案--------------------------------------------------------
d是数组,就把数组打印出来了。但是q就不一样了,你没有给它分配空间就直接用了,所有有问题了~~应该执行不下去了。。
----------------解决方案--------------------------------------------------------
d应该是输出数组 q应该是它指向地址的东西吧
----------------解决方案--------------------------------------------------------
额``现在还有点不明白`
----------------解决方案--------------------------------------------------------
有懂的吗?我也想知道,呵呵
----------------解决方案--------------------------------------------------------
同意2楼的说法
----------------解决方案--------------------------------------------------------
同意2楼的
----------------解决方案--------------------------------------------------------
补充一下,其实也不一定输出错误,主要是看内存有没有空余。
----------------解决方案--------------------------------------------------------
我在第二个scanf中输入q的目的就是给q赋值呀?
----------------解决方案--------------------------------------------------------
以下是引用lxm520910在2007-10-23 17:50:32的发言:
我在第二个scanf中输入q的目的就是给q赋值呀?
我在第二个scanf中输入q的目的就是给q赋值呀?
你输入的是一个字符串,可是你给指针q,只是一个普通的指针类型打个比方说。
一间屋子放一个人,你的p 给了三个屋子的地址,那么可以允许小于三个人在里面。
而你的q呢?只是给出了一个屋子的地址,你却要让好几个人,多余的人就没有地方放。
----------------解决方案--------------------------------------------------------