【发布时间】:2015-07-08 18:52:57
【问题描述】:
这个程序是比较字符串,但我不明白为什么它每次都返回相同的 c 值。谁能帮我理解这个? 谢谢。
int func(char *n,char *m)
{
int c;
c = (int)malloc(sizeof(int));
c=0;
while(*n == *m)
{
if(*n=='\0' && *m=='\0')
{
int c=1;
break;
}
else
{
n++;
m++;
}
}
printf("%d \n",c);
return(c);
}
【问题讨论】:
-
这还能编译吗?除其他外,您已经在同一范围内多次定义了
int c。另外,你为什么要返回 malloc()?在 C 中,这是一个错误。 -
我最好不要给我标准警告(“不要投
void *)。你有更糟糕的问题要先解决。一个好的开始是最近的C书。 -
c = (int)........请叫救护车... -
@SouravGhosh:我刚刚注意到那个。如果有人再次询问为什么不投
void *,这是一个很好的例子。没有什么是无用的;它总是可以用来吓唬某人。 -
是的,不知道如何多次使用 int 逃脱了我。但我在某处读到变量范围在函数之外被破坏,所以使用了 Malloc。但是一秒钟都没有想到 return 只是返回一个值。我的坏人。谢谢大家