C 基本语法

        任何一种语言,包含编程语言,最终的目的是实现一片文章,完成一项功能。对于编程语言,编写代码核心可能是实现某项控制,某个内容展示或者某项运算。我们将自然世界的一个具体的内容抽象成一个个数据对象或者描述,然后通过某项算法(可能时逻辑也可能是计算规则)我们上诉的要求。编程语言的学习首先了解语言构成文章的基本要素。对于C语言而言,我们需要明白一个C语言基本代码构成文件.c/.h、文件中基本文字构成、语法、和运算规则等。

1. C语言基本程序结构

        C语言代码结构包含头文件.h和具体文件实现.c文件两部分,其中头文件实现具体的声明,为了房子重复定义,头文件通过#ifndef进行隔离。对于.c文件实现部分,通过主要包含预处理指令、函数、变量、语句&表达式和注释几块部分。如下是hello_world.c文件的构成

#include <stdio.h>                            预处理

// 续行符
#define SWAP(a,b)      \                       
{                      \
    int temp = a;      \
    a = b;             \
    b = temp;          \
}


int main()                                    函数
{
   /* 我的第一个 C 程序 */                     注释
   printf("Hello, World! \n");                代码语句,打印hello world!。其中\n是转义字符
   
   return 0;                                  函数返回值
}

2. C 令牌(名字约束)

        C语言程序由一个个语句表达式构成,每个语句表达式都包含都可以拆分成一个个令牌,令牌可以是关键字、标识符、常量、字符串或者一个符号。对于每一项令牌的使用方法和功能详细说明后面详细给出说明。这里先给出命名规则,一些辅助令牌的说明与使用规则。

2.1 分号

        ; 分号是C语言程序中,分号令牌是语句的结束表示,通过一个个分号来实现语句的隔离。

2.2 注释

        C语言注释包含单行注释//和多行注释/* */。编译器在编译过程中使用空格替换整个注释,字符串字面量中的//和/*…*/不代表注释符号,/*…*/型注释不能被嵌套。

        优秀的代码注释需要遵循如下原则:

        (1)注释应该准确易懂,防止二义性,错误的注释有害无利

        (2)注释是对代码的提示,避免臃肿和喧宾夺主。

        (3)一目了然的代码避免加注释

        (4)不要用缩写来注释代码,这样可能会产生误解

        (5)注释用于阐述原因和意图,而不是描述程序的运行过程

2.3 标识符

        C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。下面列出几个有效的标识符:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

2.4 关键字

        关键字作为标识符一种特有的结构,是语言标准规定的基础类内容,其规范对应实际实体中常用的数据类型、代码逻辑结构、特定编译约束符等内容。下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

关键字说明
auto声明自动变量
break跳出当前循环
case开关语句分支
char声明字符型变量或函数返回值类型
const定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue结束当前循环,开始下一轮循环
default开关语句中的"其它"分支
do循环语句的循环体
double声明双精度浮点型变量或函数返回值类型
else条件语句否定分支(与 if 连用)
enum声明枚举类型
extern声明变量或函数是在其它文件或本文件的其他位置定义
float声明浮点型变量或函数返回值类型
for一种循环语句
goto无条件跳转语句
if条件语句
int声明整型变量或函数
long声明长整型变量或函数返回值类型
register声明寄存器变量
return子程序返回语句(可以带参数,也可不带参数)
short声明短整型变量或函数
signed声明有符号类型变量或函数
sizeof计算数据类型或变量长度(即所占字节数)
static声明静态变量
struct声明结构体类型
switch用于开关语句
typedef用以给数据类型取别名
unsigned声明无符号类型变量或函数
union声明共用体类型
void声明函数无返回值或无参数,声明无类型指针
volatile说明变量在程序执行中可被隐含地改变
while循环语句的循环条件

2.5 空格

        只包含空格的行称为空白行。

2.6 转义字符与连接符 \

        转义字符和续行符使用的表示时一样的,都是使用\标识。如果想其作为转义字符使用,其必须出现在字符表示号''或者字符串表示符号""中。

        续行符是指示编译器的利器,其作用主要是编译器将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行。接续符适合在宏定义代码块时使用,将宏代码编译成一个整体的块。需要注意的是如果想在接续单词时,反斜杠之后不能有空格,反斜杠下一行之前也不能有空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值