关于指针和数组的问题 谢谢
#include<stdio.h>#include<string.h>
void main()
{
char *s1,*s2,*s3;
int i,j,n,m,x;
printf("enter the string s1 and s2\n");
scanf("%s %s",s1,s2);
n=strlen(s1);
m=strlen(s2);
x=strcmp(s1,s2);
if(x!=0)
{
printf("the two string\n");
strcat(s1,s2);
}
else
printf("the two string are not equal\n");
strcpy(s3,s1);
i=strlen(s3);
printf("%s\n",s3);
printf("the length of the s3 is:%3d\n",i);
printf("%d %d\n",n,m);
}
这样不能运行 但是编译没有问题
我改成下面这样既可以运行 而且结果是正确的 请问是什么原因啊 指针和数组不是在某种意义上时一样的吗?
#include<stdio.h>
#include<string.h>
void main()
{
char s1[10],s2[10],s3[30];
int i,j,n,m,x;
printf("enter the string s1 and s2\n");
scanf("%s %s",s1,s2);
n=strlen(s1);
m=strlen(s2);
x=strcmp(s1,s2);
if(x!=0)
{
printf("the two string\n");
strcat(s1,s2);
}
else
printf("the two string are not equal\n");
strcpy(s3,s1);
i=strlen(s3);
printf("%s\n",s3);
printf("the length of the s3 is:%3d\n",i);
printf("%d %d\n",n,m);
}