【160718】ACM俱乐部暑期交流

  • C++兼容C,但C++不是C的超集。

  • gcc与Visual C++分别代表两种编译器套装,各自都包含C编译器和C++编译器。

  • gcc或Visual C++都根据源代码文件的扩展名*.c/*.cpp选择语言,但评测时的语言选项并非如此。
    提交代码时如需选择语言或编译器,(GNU) gcc=C语言,g++=C++;
    (Microsoft) C=C语言,(Microsoft) C++=C++.

  • 可以把C语言代码当做C++代码提交。

C语言标准 gcc编译选项
ANSI C(C89) -ansi
C99 -std=c99
C11 -std=c11

评测环境、选项会在OJ、正式比赛的文件上说明。

  • 64位整数的输入输出
    __int64类型只能在Visual C++中使用。
    long long的输入输出格式符为%I64d%lld,会出错?
    unsigned long long的输入输出格式符为%I64u%llu,会出错?

  • 输入若干组数据?
    利用scanf函数的返回值。
    利用gets函数的返回值。

  • 变量的内存空间分配

    静态区: 保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。

    堆: 由 malloc 系列函数或 new 操作符分配的内存,其生命周期由 free 或 delete 决定。在没有释放之前一直存在,直到程序结束,其特点是使用灵活,空间比较大,但容易出错

    栈: 保存局部变量,栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限

【160718】ACM俱乐部暑期交流

https://devblog.citruxonve.net/posts/49696186/

Author

Semprathlon / Simfae Dean

Posted on

07/18/2016

Updated on

07/19/2023

Licensed under

Comments