#include
#include
int main()
{
char*s;
scanf("%s",s);
//printf("%s\n",s);
//int n = strlen(s);
//printf("%d\n",n);
char ret[56];
return 0;
}
你要知道指针是指向内存中的一块内存地址,char*s;, 而你往指针里面存放数据到底是什么意图?
#include
int main()
{
char a[10];
char *s=a;
scanf("%s",a);
printf("%s\n", a);
printf("%s\n",s);
return 0;
}
char *s;
是指定义了一个字符型指针变量,它(s),只能用于存放地址。
char a[10];
s = a;
是因为a是一个数组,而数组名表示数组的首地址,所以可以这样使用。
但并不是表示s可以存放a中的所有值。
修改后的代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char*s;
s=(char *)malloc(10*sizeof(char)); //申请10个字符的空间来存储字符串.
scanf("%s",s);
printf("%s\n",s);
int n = strlen(s);
printf("%d\n",n);
char ret[56];
return 0;
}