C 基本语法

举报
帅次 发表于 2021/12/23 01:17:38 2021/12/23
【摘要】         我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。 C 的令牌(Token)         C 程序由各种令牌组成,令牌...

        我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。

C 的令牌(Token)

        C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:

这五个令牌分别是:


  
  1. printf
  2. (
  3. "Hello, 帅次! %d",x
  4. )
  5. ;

分号 ;

        在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。

样例:


  
  1. int x;
  2. printf("Hello, 帅次! %d",x);
  3. return 0;

注释

        C 语言有两种注释方式:

// 单行注释
 

        以//开始的单行注释,这种注释可以单独占一行。


  
  1. /* 单行注释 */
  2. /*
  3.  多行注释
  4.  多行注释
  5.  多行注释
  6.  */

        /* */ 这种格式的注释可以单行多行

        你不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。

标识符

        1、C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

        2、C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。

        3、C 标识不能将关键字用作标识符。

        4、C 标识符的长度没有指定。但是,如果标识符超过31个字符,则在某些编译器中可能会遇到问题。

        如果遵循上述规则,则可以选择任何名称作为标识符,但是,建议有意义的标识符指定有意义的变量名称。下面列出几个有效的标识符:


  
  1. mohd zara abc move_name a_123
  2. myname50 _temp j a23b9 retVal

关键字

下表列出了 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

循环语句的循环条件

C99 新增关键字

_Bool 、_Complex 、_Imaginary、inline、restrict

C11 新增关键字

_Alignas、_Alignof、_Atomic、_Generic、_Noreturn、_Static_assert 、_Thread_local

C 中的空格

只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。

在 C 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:

int age;
 

在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:

fruit = apples + oranges;// 获取水果的总数
 

fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。

由于我也是初学者,所以以上内容可能存在分歧,我们可以共同探讨,不要轻易质疑自己。

文章来源: shuaici.blog.csdn.net,作者:帅次,版权归原作者所有,如需转载,请联系作者。

原文链接:shuaici.blog.csdn.net/article/details/118440820

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。