c语言,刚才没解决到

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:32:38
main ()
{
static char str[100];
char *str_p;
str_p=str;
printf("输入一组字符串:");scanf("%s",&str);
printf("%s",*str_p);
getch();
}

一输入就内存错误

肯定内存错误
输入字符串时str已经是字符串首地址了,不需要再加&
输出的时候,也要提供字符串首地址str_p,而不是其第一个字符*str_p

scanf("%s",&str); 错了,
把&去掉

数组名表示数组开头元素的内存地址,所以输入的时候就不用加&了
输出字符串的时候,引用的变量应该是字符串名,也就是字符数组的数组名,亦即这里的指针str_p的值,而不是这个指针所指的元素,因此输出语句中的*也应该去掉。