一、编写helloworld

配置部署好 vsCode 之后,就可以直接在上面写代码了,新建一个新的C程序文件,向屏幕输出一串字符 “Hello World!”,如下图所示:

#include <stdio.h>

int main(void)
{
    printf("Hello, World!\n");
    return 0;
}

下面,从整体上来分析一下这个最简单的C语言程序,将这个最简程序的各个部分剖析清楚,明白我们写下的每一个字符的具体含义。

二、程序的基本结构

1、头文件

#include <stdio.h>

1)C语言程序中,任何符号(包括变量和函数)的使用,都是需要提前声明的。

2)如果程序用到了系统库函数,那么就需要包含相应的系统头文件来进行声明。

3)上述代码中用到了库函数 printf,而这个函数的声明在头文件 stdio.h 中,因此在该程序中需要包含此头文件。

声明

  • 概念:对源文件外定义的某个符号进行描述的过程,称为声明
  • 作用:经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法判定语法错误

2、主函数

1)主函数是必须有的,每一个C语言程序都有main函数,哪怕是空的。

2)主函数的名字是固定的,叫 main ,这个函数名不可被挪作他用。

3)主函数是程序的入口,也就是程序开始运行的地方。

4)主函数分解如下:

// int: 返回值类型,代表主函数最终的执行结果是一个整型数据
// main(void): main是函数名,这个名字不能变
//             void是函数参数列表,可以省略
int main(void)
{
}

在 Linux 环境下,主函数 main 根据程序最终是否需要接收外部命令行参数,实际上有两个版本:

// 不接收外部命令行参数的版本
int main()
{
    ...
}

// 接收外部命令行参数的版本
int main(int argc, char **argv)
{
    ...
}

在初学阶段,可不必理会带外部参数的版本,等到学完数组和指针再回过来复习即可。

3、printf函数

C语言被称为是一种面向过程的模块化语言,所谓的模块,值得是一个个功能明确、各司其职的封装函数,它们就像一块块积木,被合理有机地拼搭起来,形成复杂、健壮的程序。

在这之中,系统标准C库提供了非常多“模块”,printf 就是其中之一,它的功能就是:向终端输出指一段定格式的数据。

// 向终端输出一段字符串
printf("Hello World!\n");

格式输出控制符

  • 概念:函数 printf 被称为格式化IO函数,因为它是按照指定格式来操作数据的。以常见的整数、浮点数和字符串为例,printf 函数相关的控制格式符如下所示:

// 格式化输出函数 printf(); // 根据需要输出不同格式的数据 printf("%d\n", 100); // 输出1个整数 printf("%d, %d\n", 100, 200); // 输出2个整数 printf("%f\n", 3.14); // 输出浮点数 printf("%c\n", 'x'); // 输出字符 printf("%s\n", "abcd"); // 输出字符串 printf("a=%d, %s\n", "abcd"); // 输出字符串

  • 语法点:
    • 类似 %d、%f 被称为格式控制符
    • 一个格式控制符对应一个数据
    • ‘\n’ 是一个字符,表示回车符,详细 ASCII 码表参阅教案3。
  • 格式控制符:
    1. 十进制整数:%d
    2. 八进制整数:%o
    3. 十六进制整数:%x
    4. 字符:%c
    5. 字符串:%s
    6. 单精度浮点数:%f
    7. 双精度浮点数:%lf
    8. 长双精度浮点数:%Lf
    9. 地址:%p

4、return语句

C语言中的关键字 return 的含义是结束一个函数,并返回某个数据(若有)。而具体到 main 函数中时,由于主函数 main 的结束同时也意味着整个程序的结束,因此在上述 Hello World 程序中 return 后整个程序就退出了。

int main()
{
    ... ...

    // 一般而言,函数正常退出返回0,非正常退出返回非0
    return 0;
}

一般而言,程序正常退出时,main函数返回值是0;当程序异常退出时,main函数返回值是非0。

注意,main函数的返回值是给上一级进程的,因此理论上讲在当前的单进程程序中,main函数的返回值究竟是多少都无所谓,因为根本没有去使用这个返回值,除非在多进程程序中,进程间才需要使用main函数的返回值来传递信息。

练习:

1.熟悉代码风格规范

  • 缩进:凡是有代码块的地方都必须缩进,一对大括号 { } 代表一个代码块
  • 空格:标点符号后面,一般加空格
  • 空行:不同逻辑段落中间,一般加空行
  • 符号命名:尽量能一望便知,做到顾名思义,避免使用无意义字符
 // 示例代码
  #include <stdio.h>
  #include <stdlib.h>
  
  int maxValue(int a, int b)
  {
      return a>b ? a : b;
  }
  
  int main(void)
  {
      int a;
      int b;
      int m = maxValue(a, b);
      
      printf("最大值是: %d\n", m);
      return 0;
  }

2.麻花疼同学写了下面这个程序,请指出你认为不妥的地方。

#include "stdio.h"
main{}
(
float g; h;
float tax, rate;
g = e21;
tax = rate * g;
printf("%f\n", tax);
)

三、基础配置

1、cmd支持中文输出

2、自动删除exe文件

3、输入中文

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐