C/C++

  • scanf 内部无论 n++ 或 ++n,其它使用 n 的位置都使用的原始值

    • 函数实参的求值顺序是未指定的,一条语句里只放一个副作用才安全
  • i = i++、a[i] = i++ 这类同一表达式里改两次或改了又用,是未定义行为,别写

  • sizeof 数组得整个数组的字节数,sizeof 指针永远是 8(64 位)

    • 数组作函数参数会退化成指针,函数里 sizeof 拿不到长度,要另传
  • 整数除法向零取整,-7 / 2 == -3,-7 % 2 == -1,余数符号跟被除数

  • char 有无符号由编译器决定,接 getchar() 的返回值要用 int,否则 EOF 判不出来

  • C++ 里 cin/cout 默认和 stdio 同步,加 ios::sync_with_stdio(false) 提速,之后别混用 scanf/printf

评论