C语言程序设计(入门)

1.Hello World

1.1 Hello World示例

  • 学习一门新程序设计语言的惟一途径就是使用它编写程序。对于所有语言的初学者来说, 编写的第一个程序几乎都是相同的:
#include <stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}
  • 一个 C 语言程序,无论其大小如何,都是由函数和变量组成的。
    • 函数中包含一些语句,以指定所要执行的计算操作;
    • 变量则用于存储计算过程中使用的值。

  • 在本例中,函数的名字为 main。通常情况下,函数的命名没有限制,但 main 是一 个特殊的函数名——每个程序都从 main 函数的起点开始执行,函数中的语句用一对花括号{}括起来。
    • 主函数是必须有的,每一个C语言程序都有main函数,哪怕是空的。
    • 主函数是程序的入口,也就是程序开始运行的地方。
int main()
{
    return 0;
}
/*
    int: 返回值类型,代表主函数最终的执行结果是一个整型数据
    main: 函数的名字,这个名字不能变
    (void):函数的参数列表,代表程序运行时不需要参数,等价于(),此处void可以省略
    return 0:函数的返回值,代表主函数最终返回一个 0 给上级进程(称为父进程)。
    一般而言,函数正常退出返回0,非正常退出返回非0。
*/

  • 本例中的 main 函数仅包含下面一条语句:
printf("hello, world\n");
  • printf 是一个用于打印输出的库函数,在此处, 它打印双引号中间的字符串,"\n"表示换行的意思。

  • 头文件
#include <stdio.h>
1.为什么要包含头文件?
2.为什么在这个程序里要包含stdio.h这个头文件?
  • C语言程序中,任何符号(包括变量和函数)的使用,都是需要提前声明的
  • 经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法编译
  • 如果程序用到了系统库函数,那么就需要包含相应的系统头文件来进行声明

1.2 man手册

  • 手册类别
  1. Shell命令(默认已安装)
  2. 系统调用
  3. 库函数
  4. 特殊文件(通常出现在/dev目录下)
  5. 文件的特殊格式或协定(例如/etc/passwd的格式)
  6. 游戏
  7. 杂项(例如一些宏定义)
  8. 系统管理员命令(通常只能由管理员执行)
  9. 非标准内核例程
  • 查询man手册(按 q退出)
cam@ubuntu:~$ man -f printf
printf (1)           - format and print data
printf (1posix)      - write formatted output
printf (3)           - formatted output conversion
printf (3posix)      - print formatted output
cam@ubuntu:~$ man 3 printf

1.3 printf 

int printf(const char *format, ...);
  • printf 的格式有四种:

printf("字符串\n");

printf("Hello World!\n"); // 其中 n 是“new line”的缩写,即“新的一行”

printf("输出控制符",输出参数); 

#include <stdio.h>
int main(void)
{
    int i = 10;
    printf("%d\n", i); /* %d是输出控制符,d 表示十进制,后面的 i 是输出参数 */
    return 0;
}
  • 这句话的意思是将变量 i 以十进制输出。
  • %x就是以十六进制的形式输出
  • %o就是以八进制的形式输出

 printf("输出控制符1 输出控制符2…", 输出参数1, 输出参数2, …);

#include <stdio.h>
int main(void)
{
    int i = 10;
    int j = 3;
    printf("%d %d\n", i, j);
    return 0;
}
  • 输出控制符 1 对应的是输出参数 1,输出控制符 2 对应的是输出参数 2
  • %d 和 %d之间有空格,那么输出10 和 3 之间就有空格,printf 中双引号内除了输出控制符和转义字符\n外,所有其余的普通字符全部都原样输出

printf("输出控制符 非输出控制符",输出参数);

  • 输出控制符如下:

十进制整数:%d

printf("%d\n", 123); // 整数用%d输出,'\n'回车换行

八进制整数:%o

printf("%#o\n", 8); // 整数用%#o输出,显示前缀
==> 010

十六进制整数:%x

printf("%#x\n", 10); // 整数用%#x输出,显示前缀'\n'回车换行
==> 0xa

字符:%c

printf("%c\n", 'x'); // 输出字符

字符串:%s

printf("%s\n", "abcd"); // 输出字符串

  • 注意:指定输出数据宽度的,在%和表示类型的字符中间加上数字表示输出的宽度
#include <stdio.h>
int main()
{
    char ch = 'x';
    int n = 123456;
    printf("|%5c|\n", ch);          // 整个宽度是5个字符,右对齐
    printf("|%5c|%-5c|\n", ch, ch); // 数字前面加负号表示左对齐,数字前面加正号是右对齐
    printf("%3d\n", n);             // 当指定的宽度小于数据的实际宽度的时候,按照数据值的实际宽度输出
    return 0;
}

输出:

|    x|
|    x|x    |
123456

1.4 scanf

  • 键盘是系统的标准输入设备,从键盘中输入数据被称为标准输入
int scanf(const char *format, ...);
int b, c;
char a[10];
scanf("%d", &b); // 这里使用&
scanf("%d %d", &b, &c)
scanf("%d", a); // 这里不用使用&

2.关键字和保留标识符

  • 标识符:用来表示某种含义的符号(如同我们生活中的名字一样)。在C语言中,定义符号常量,变量,数组,结构体,枚举,函数等都需要一个名称,我们把这名称成为标识符。
  • 标识符的命名规则
    • 标识符只能由字母,数字,下划线,美元($)符号组成
    • 严格区分大小写
    • 不能以数字开头
    • 不能与C中的关键字同名

  • 关键字:关键字又称保留字,就是程序发明者规定的有特殊含义的单词,不能作为常量名、变量名或其他标识符名称

  • 分隔符:
    • 分号 ; 用来结束语句
    • 大括号{ }用来表示作用域,函数体,数组之中等等
    • 圆括号 () 用在运算的优先级上,或者用在函数时包含参数列表
    • 方括号 []主要用在和数组相关时
    • 逗号 ,用于函数的参数列表分隔
    • 点号. 用于点语法 -- 结构体章节会介绍

3.代码编写风格

  • 缩进:凡是有代码块的地方都必须缩进,一对大括号 { } 代表一个代码块
  • 空格:标点符号后面,一般加空格
  • 空行:不同逻辑段落中间,一般加空行
  • 符号命名:尽量能一望便知,做到顾名思义,避免使用无意义字符
  • 华为c语言编程规范:华为C语言编程规范 | wiki

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cam_______

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值