考虑这段代码。
为什么这段代码会导致崩溃?而使用字符数组的代码却能正常工作?
#include<stdio.h>
int main(void)
{
char* a;
scanf("%s",a);//&a and &a[0] give same results-crashes
printf("%s",a);
return 0;
}
为什么这段代码会导致崩溃?而使用字符数组的代码却能正常工作?
#include<stdio.h>
int main(void)
{
char a[100];
scanf("%s",&a[0]);//works fine
printf("%s",a);
return 0;
}
字符数组和指针的区别是什么?但我知道指针只是指向第一个元素,即&a[0]应该可以正常工作,但上面的代码对于a、&a和&a[0]都会崩溃。我想了解的主要内容是,如果我坚持使用scanf,如何输入字符指针?如果我的表述不清楚,请见谅。谢谢!