只看书本,似乎都懂了,可到了为解决问题而独立写代码时,却碰到很多以前忽略了的细节上的问题,现集录下来,以便经常复习:
1、字符串直接比较
#include <stdio.h>
int main(int argc, char *argv[])
{
if(argv[1] == "1")
printf("It's 1.\n");
else
printf("It's null.\n");
return 0;
}
错误表现:if 的前一分支永远不会被执行。
原因分析:argv[1] 为字符串首地址。
2、scanf() 中的 “\n”
#include <stdio.h>
int main(int argc, char *argv[])
{
int a, b;
scanf("%d", &a);
scanf("%d\n", &b);
printf("%d, %d\n", a, b);
return 0;
}
错误表现:输入2个数据后,会要求你再输入一个数据。
原因分析:scanf() 中的 “\n“。
备 注:经测试,若将 2 个 scanf () 换下位置,则无影响。即最后1个 scanf () 不能带 “\n“。