Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485287
  • 博文数量: 164
  • 博客积分: 4024
  • 博客等级: 上校
  • 技术积分: 1580
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-10 16:27
文章分类

全部博文(164)

文章存档

2011年(1)

2010年(108)

2009年(55)

我的朋友

分类: C/C++

2009-10-13 19:57:53

一。C语言的语法基础
1。C语言字符集
C语言的基本符号可以分为4类:
英文字母:大小写 52个
阿拉伯数字:0-9 10个
下划线- 分号;
特殊符号:通常由1-2个符号组成,一般是运算符
         算数运算符+-*/% ++ --
         关系运算符<> >= <= == !=
         逻辑运算符&& || !
         位运算符& | ~ ^《 》
         条件运算符?:
         赋值运算符=
         其他分隔符[](){}.,
2.标识符
概念:用来标示变量名,符号常量名,函数名,类型名,文件名等的有效字符序列
标识符只能由字母数字和下划线三种字符组成,且第一个字符为字母或下划线
大小写严格区分
用户自定义的标识符不能与关键字重名
3.关键字(无需记忆)
概念:就是对编译器具有特定含义的标记符,用户不能用作自定义标示符
由ANSI推荐32个:
与数据类型有关的:char int float double signed unsigned short long void struct union typedef enum sizeof
与存储类别有关的:auto extern register static
与程序控制结构有关的;do while for if else switch case default goto continue break return
 
二。C语言当中的数据类型
基本类型:字符型,数值类型(整型,实型),枚举类型
构造类型:数组类型,结构体类型,共用体类型
指针类型
空类型
 
三。常量和变量
1.常量;程序运行过程中其值不能被改变的量
  分类:直接常量和符号常量
  直接常量:直接引用(以数据原型形式出现)
          整型:十进制,八进制,十六进制
          实型:十进制,指数形式
          字符:‘’ 转义字符
  符号常量:用一个标识符来表示一个数据
          特点:在程序中不能给它赋值
          定义:#define 标识符 常数数据
          在程序预处理时,凡出现标识符的地方都使用数据来替换
2.变量:程序运行过程中其值可以改变的量
  变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值
  在同一程序块中,每个变量都有唯一的名字,不能重复定义
  使用变量时必须先定义 后使用
  定义形式:类型标识符 变量名【变量2.。。。】
  分类:整型 实型 字符型
  变量的初始化:在说明变量的同时给变量一个初始值
  变量定义--》分配存储空间
  变量的初始化--》分配存储空间的同时存入数据
 
 
四。运算符与表达式
1.运算符的分类
分类依据:功能
分类:算术运算符 关系运算符 逻辑运算符 赋值运算符 按位运算符 其他运算符
2.表达式:由操作数和运算符组成的序列
3.算数运算符和算术表达式:由算术运算符和括符将操作数连接起来的式子
 float a=2.0;int b=6,c=3;求解:a*b/c-1.5+'A'+abs(-5)    72.5
4.自增与自减运算符
++i --i->先增(减)再使用i
i++ i--->先使用i,再使i增(减)1
结合型:++ -- 正号 负号 是同级运算符,结合方向为自右向左
对于括号内的自增运算,又要先使用i再使i增1
i=2;j=-i++;   结果:i=3 j=-2
5.关系运算符与关系表达式
关系运算:比较运算,比较两个操作数看是否满足给定的关系
关系运算符;<  > <= >= == !=
关系表达式:用关系运算符将表达式连接起来的式子
结合方向:自左向右
表达式的值:关系成立则为真 反之为假
6.逻辑运算符和逻辑表达式
逻辑运算符:! && ||
逻辑表达式的值:非0值(真),0值
优先级:! 算术运算符 关系元素符 && ||
结合性:!自右向左,&&||自左向右
注:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符
a&&b&&c
若a为真,才需要判断b,只有a和b为真才需判断c。只要a为假,不必判断b,c,运算中止
a=0;b=1;c=2;d=a++&&b++&&--c结果:d=0  a=1  b=1 c=2
 
a||b||c
只要a为真就不必判断b,c;a只有为假才判断b,只有a,b都为假才判断c
a=0;b=1;c=2;d=a++||b++||--c结果:a=1 b=2 c=2 d=1
7.赋值运算符和赋值表达式
符号:=
将一个表达式的值赋给一个变量
赋值表达式:变量=表达式
结合型:自右向左
x=(y=12)/4 x=3 y=12 表达式值3
(x=y)=3错误 =左边应为变量 不可以是表达式
8.复合赋值运算符
*= /= %= += -= <<= >>= &= ^= !=
由赋值运算符与算术位移位逻辑运算符组成
a=2;a+=a*=a;结果:a=8
9.其他运算符
条件运算符:?:
          一般形式:表达式1?表达式2:表达式3
        优先级; 逻辑》条件>赋值
      结合性:自右至左
逗号运算符:表达式1,表达式2.。。。
           从左向右依次计算
          表达式的值为最后一个表达式的值
          y=a=4,b=5,a+b;      y=9
求字节运算符:sizeof 变量名   sizeof (类型名)
             求得变量或某种数据类型所需的字节数
 
五。数据类型转换
c语言允许整型实型字符型数据进行混合运算
有3种转换方式:自动转换 赋值转换 强制转换
类型自动转换:小范围的可以赋值给范围大的
赋值转换:实型--》整型(字符型) 去掉小树部分
整型字符型--》实型 补足有效位
强制转换;(类型名)表达式
注:强制类型转换时,得到所需类型的值,原来变量的类型和值都不变
int a=2,b=5;
(float)b/a=2.5
(float)(b/a)=2.0
 
 
 
 
今天有点小累。。。呜呜
 
 
 
         
 
 
阅读(718) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~