C语言常用语法提要

1.标识符:

  可由字母、数字和下划线组成,标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符,不同的系统对标识的字符数有不同的规定,一般允许7个字符

2.常量:

  可以使用:

  (1)整型常量

    十进制常数。

    八进制常数(以0开头的数字序列)。

    十六进制常数(以0x开头的数字序列)。

    长整型常数(在数字后加字符L或l)。

  (2)字符常量

    用单撇号括起来的一个字符,可以使用转义字符。

  (3)实型常量(浮点型常量)

    小数形式。

    指数形式。

  (4)字符串常量

    用双撇括起来的字符序列。

3.表达式:

  (1)算术表达式

    整型表达式:参加运算的运算量是整型量,结果也是整型数。

    实型表达式:参加运算的运算量是实型量,运算过程中先转换成double型,结果为double型。

  (2)逻辑表达式

    用逻辑运算符连接的整型量,结果为一个整数(0或1)。逻辑表达式可以认为是整型表达式的一种特殊形式。

  (3)字位表达式

    用位运算符连接的整型良,结果为整数。字位表达式也可以认为是整型表达式的一种特殊形式。

  (4)强制类型转换表达式

    用”(类型)“运算符使表达式的类型进行强制转换。如(float)a。

  (5)逗号表达式(顺序表达式)

    形式为:表达式1,表达式2,……表达式n。顺序求出表达式1,表达式2,……表达式n的值。结果为表达式n的值。

  (6)赋值表达式

    将赋值号”=“右侧表达式的值赋给赋值号左边的变量。赋值表达式的值为执行赋值后被赋值的变量的值(绕口:运行后赋值表达式的值为左侧变量的值)。

  (7)条件表达式

    形式为:逻辑表达式?表达式1:表达式2。逻辑表达式的值若为非零,则条件表达式的值等于表达式1的值;若逻辑表达式的值为零,则条件表达式的值等于表达式2的值。

  (8)指针表达式

    对指针类型的数据进行运算,例如,p-2,-p1-p2等(其中p、p1、p2均已定义为指向数组的指针变量,p1与p2指向同一数组中的元素),结果为指针类型。

  以上各种表达市可以包含有关的运算符,也可以是不包含任何运算符的初等量(例如,常数算术表达式的最简单的形式)。

4.数据定义:

  对程序中用到的所有变量都需要进行定义,对数据要定义其数据类型,需要时要指定其存储类别。

  (1)类型标识符可用: int  short  long  unsigned  char  float  double  struct结构体名  union共用体名  enum枚举类型名  用typedef定义的类型名     结构体与共用体的定义形式为struct  结构体名  {成员表列};union  共用体名  {成员表列}; 用 typedef定义新类型名的形式为:typedef  已有类型  新定义类型;如:typedef  int  COUNT;

  (2)存储类别可用: auto  static  register  extern (如不指定存储类别,做auto处理)变量的定义形式为:存储类别  数据类型  变量表列; 例如:static  float  a,b,c;注意外部数据定义只能用extern或static,而不能用auto或register。

5函数定义:

  形式为:存储类别  数据类型  函数名(形参表列)   函数体

  函数的存储类别只能用extern或static。函数体是用花括弧括起来的,可包括数据定义和语句,函数的定义举例如下:

  static int max(int x,int y)

  {

    int z;

    z = x > y ? x : y;

    return(z);

  }

6.变量的初始化

  可以在定义时对变量或叔祖指定初始值。

  静态变量或外部变量如未初始化,系统自动使其初始值为零(对数值型变量)或空(对字符型数据)。对自动变量或寄存器变量,若未初始化,则其初值为一不可预测的数据。

7.语句:

  (1)表达式语句;(2)函数调用语句;(3)控制语句(4)复合语句;(5)空语句。

  其中控制语句包括:(1)if(表达式) 语句 或 if(表达式) 语句1 else 语句2;(2)while(表达式) 语句;(3)do 语句 while(表达式);(4)for(表达式1;表达式2;表达式3) 语句;(5)switch(表达式) {case 常量表达式1:语句1;case 常量表达式2:语句2;……scase 常量表达式n:语句n;default; 语句n+1;}。前缀case和default本身并不改变控制流程,他们只起标号作用,在执行上一个case所标志的语句后,继续顺序执行下一个case前缀所标志的语句,除非上一个语句中最后用break语句使控制转出switch结构。(6)break 语句;(7)continue 语句;(8)return 语句;(9)goto 语句;

8.预处理命令:

  #define   宏名   字符串

  #define   宏名(参数1,参数2,……参数n)  字符串

  #undef   宏名

  #include  ”文件名“ (或者<文件名>)

  #if   常量表达式

  #ifdef   宏名

  #ifndef   宏名

  #else

  #endif

原文地址:https://www.cnblogs.com/chenxiangxi/p/2217230.html