您现在所在的是:

单片机论坛

回帖:1个,阅读:951 [上一页] [1] [下一页]
912
sfmcu
文章数:44
年度积分:50
历史总积分:912
注册时间:2006/8/22
发站内信
08年优秀博客奖
发表于:2009/9/8 19:35:35
#0楼
 
在刚开始学c语言时,往往一些定义和用法搞不清,需要查书的,站长结合实际把常用的语法打出供您参考和备忘。
1、标识符
 可由字母,数字和下划线组成。标识符必须以字母或下划线开头。大,小写的字母分别认为是两个不同的字符。不同的系统对标识的字符的字符数有不同的规定,一般允许7个字符。
2。常量
可以使用:
1整型常量
十进制常数。
八进制常数(以0开头的数字序列)。
十六进制常数(以0x开头的数字序列)。
长整型常数(在数字后加字符l或l)。
2字符常量
用单撇号括起来的一个字符,可以使用转义字符。
3实型常量(浮点型常量)
小数形式。
指数形式。
4字符串常量
用双撇号括起来的字符序列。
3 表达式
(1)算术表达式
整型表达式:参加运算的运算量是整型量,结果也是整型数。
实型表达式:参加运算的运算是实型量,运算过程中先转换成double型,结果为double型。
(2)逻辑表达式
用逻辑运算符连接的整型量,结果为一个整数0或1。逻辑表达式可以认为是整型表达式的一种特殊形式。
(3)字位表达式
用位运算符连接的整型量,结果为整数。字位表达式也可以认为是整型表达式的一种特殊形式。
(4)强制类型转换表达式
 用“(类型)”运算符使表达式的类型进行强制转换。
(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;//就是在有int的地方都可以用count代替
(2)存储类别可用
 auto//一般默认
 static
 register
 extren
 (如不指定存储类别,作auto处理)
 变量的定义形式为
 存储类别  数据类型   变量表列;
 例如:
 static  float  a,b,c;
注意外部数据定义只能用extern或static,而不能用auto或register.
5  函数定义
形式为
存储类别  数据类型  函数名(形参表列)
函数体
函数的存储类别只能用extern或static.函数体是用花括弧括起来的,可包括数据定义和语句.函数的定义举例如下:
 static  int  max (int,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;
    case  常量表达式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
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=99889&Name=sfmcu
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2009/11/4
发站内信
发表于:2009/11/4 18:36:38
#1楼
该用户被锁定,回复内容不予显示!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003