char *p;scanf("%s",*p);和int *s;scanf("%d",s);这两句程序对吗?

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:21:03

第一句有错:困为函数scanf()是找到数据的地地址后,把数据存到内存空间的,
例如输入一个整数:
int a;
scanf("%d";&a);
其中&a就是取变量 a的地址;
在这里:
p表示地址,而*p是表示地址P空间的值;
所以要不正确要写成
char *p;
scanf("%s",p);
为了避免占用其它空间,产生意外最好先定义一个字符数组:
char a[100];
char *p;
scanf("%s",*p);

第二句正确

第一句绝对错,而且是大大的错.运气好的话可以让你的电脑死掉.
建议:char p[30];scanf("%s",p);
指针不能这样读入,不过可以初始化.
如char *p="abcdefg";
第二句正确.