#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char *a ;
printf("%d %d",a,&a);
scanf("%s",&a);
printf("%d %d %s",a,&a,&a);
system("pause");
return 0;
}
请教各位,这个完全可以成功编译并且运行,可是奇怪的事情是,前后两次printf,a的地址不同,但是&a的地址却一样,为啥可以打印出输入的字符串呢?
照理如果可以打印,应该是把字串符首地址赋值给&a才对嘛
#include<stdlib.h>
int main(void)
{
char *a ;
printf("%d %d",a,&a);
scanf("%s",&a);
printf("%d %d %s",a,&a,&a);
system("pause");
return 0;
}
请教各位,这个完全可以成功编译并且运行,可是奇怪的事情是,前后两次printf,a的地址不同,但是&a的地址却一样,为啥可以打印出输入的字符串呢?
照理如果可以打印,应该是把字串符首地址赋值给&a才对嘛