所以我想学习c,但我无法弄清楚为什么这段代码将无法正常运行。C无法弄清楚是否陈述
#include <stdio.h>
#include <stdlib.h>
int main()
{
char userName[25];
char myName[25] = "myName";
printf("Please enter your name: \n");
scanf("%s", userName);
if(userName == myName)
{
printf("Congratulations your name is myName!!!");
}
else
{
printf("Your name is %s how disappointing...", userName);
}
return 0;
}
问题是if语句永远不会返回true。 任何人都可以帮助我吗?
请正确格式化您的代码。 – Olaf
C课程中,char用户名[25]声明了一个指针,char myName [25]声明了一个不同的指针,指向内存中的两个不同位置(在这种情况下是堆栈),因此指针永远不会相等(每个内存位置可能相等,但**内存**必须进行比较,而不是关于此行的**指针**) – Les
:'scanf(“%s”,userName);'这个scanf()调用允许用户溢出userName []缓冲区。建议:'scanf(“%24s”,userName);'并检查从scanf()返回的值(不是参数值)以确保操作成功。 – user3629249