C语言学习系列(六)基本语法
一、C运算符
- 算术运算符(语法和java类似或基本一样略过不再描述)
- 关系运算符(略)
- 逻辑运算符(略)
- 位运算符
| 运算符 | 描述 | 实例 | 
|---|---|---|
| & | 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 | (A & B) 将得到 12,即为 0000 1100 | 
| | | 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 | (A | B) 将得到 61,即为 0011 1101 | 
| ^ | 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 | (A ^ B) 将得到 49,即为 0011 0001 | 
| ~ | 二进制补码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。 | (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。 | 
| << | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 | A << 2 将得到 240,即为 1111 0000 | 
| >> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | A >> 2 将得到 15,即为 0000 1111 | 
- 赋值运算符(略)
| 运算符 | 描述 | 实例 | 
|---|---|---|
| = | 简单的赋值运算符,把右边操作数的值赋给左边操作数 | C = A + B 将把 A + B 的值赋给 C | 
| += | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A | 
| -= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A | 
| *= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A | 
| /= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A | 
| %= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A | 
| <<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 | 
| >>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 | 
| &= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 | 
| ^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 | 
| |= | 按位或且赋值运算符 | C |= 2 等同于 C = C | 2 | 
- 杂项运算符(略)
| 运算符 | 描述 | 实例 | 
|---|---|---|
| sizeof() | 返回变量的大小。 | sizeof(a) 将返回 4,其中 a 是整数。 | 
| & | 返回变量的地址。 | &a; 将给出变量的实际地址。 | 
| * | 指向一个变量。 | *a; 将指向一个变量。 | 
| ? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y | 
二、C 中的运算符优先级
| 类别 | 运算符 | 结合性 | 
|---|---|---|
| 后缀 | () [] -> . ++ - - | 从左到右 | 
| 一元 | + - ! ~ ++ - - (type)* & sizeof | 从右到左 | 
| 乘除 | * / % | 从左到右 | 
| 加减 | + - | 从左到右 | 
| 移位 | << >> | 从左到右 | 
| 关系 | < <= > >= | 从左到右 | 
| 相等 | == != | 从左到右 | 
| 位与 AND | & | 从左到右 | 
| 位异或 XOR | ^ | 从左到右 | 
| 位或 OR | | | 从左到右 | 
| 逻辑与 AND | && | 从左到右 | 
| 逻辑或 OR | || | 从左到右 | 
| 条件 | ?: | 从右到左 | 
| 赋值 | = += -= *= /= %=>>= <<= &= ^= |= | 从右到左 | 
| 逗号 | , | 从左到右 | 
三、C的判断、循环(略)
C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
| 语句 | 描述 | 
|---|---|
| if 语句 | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 | 
| if...else 语句 | 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 | 
| 嵌套 if 语句 | 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 | 
| switch 语句 | 一个 switch 语句允许测试一个变量等于多个值时的情况。 | 
| 嵌套 switch 语句 | 您可以在一个 switch 语句内使用另一个 switch 语句。 | 
? : 运算符(三元运算符) : Exp1 ? Exp2 : Exp3;
| 循环类型 | 描述 | 
|---|---|
| while 循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 | 
| for 循环 | 多次执行一个语句序列,简化管理循环变量的代码。 | 
| do...while 循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 | 
| 嵌套循环 | 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 | 
| 控制语句 | 描述 | 
|---|---|
| break 语句 | 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 | 
| continue 语句 | 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 | 
| goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 | 
        if ( U.read(me.Blog) ) $("#推荐").click();
        if ( U.copy(me.Blog) ) $("#u Blog").console("原文链接:http://www.cnblogs.com/Grand-Jon/p/7538467.html ");
        else me.Fuck(U);
C语言学习系列(六)基本语法的更多相关文章
- Go语言学习笔记六: 循环语句
		Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ... 
- R语言数据分析系列六
		R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集 ... 
- Go语言入门系列(六)之再探函数
		Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ... 
- C语言学习系列笔记
		1.小甲鱼 C语言教程系列 
- C语言学习系列(四)C语言基本语法和数据类型
		一.基本语法 C的令牌(Tokens) C 程序由各种令牌组成,令牌可以是关键字.标识符.常量.字符串值,或者是一个符号. 关键字(保留字) auto else long switch break e ... 
- C语言学习系列(六)存储类
		一.C存储类 存储类定义C程序中变量/函数的范围(可见性)和生命周期.这些说明符放置在他们所修饰的类型之前.for example:auto.register.static.extern. (一).a ... 
- Go语言学习笔记一(语法篇)
		国庆节七天假期,这段时间刚好项目那边催的不是很紧,基本上每天都是白天重构一下项目代码,晚上自己学习.(大概是因为容总那边的人都去度假了把项目进度放慢了吧.这两天“彩虹”姐姐也来凑热闹,据说还是直接从澳 ... 
- C 语言学习 第六次作业总结
		本次作业,同学们开始学习函数.通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多.下面,我先帮同学们整理下函数的相关知识点. 什么是函数 首先,需要明确的是,什么是函数.所谓函数,也就是一段有名 ... 
- C语言学习总结(一) 基本语法
		第一章--C语言的基本概念 丹尼斯 里奇 一.什么是C语言? 定义:是一个面向过程的计算机高级语言--不需要任何运行环境便能运行的程序语言: 发展:目前是C11 (K&R C—> ... 
随机推荐
- Sql server 中count() 与 sum() 的区别
			一句话概括就是Sum(列) 是求和,把所有列的值进行汇总求和:COUNT(列) 是行数汇总,只要列的值不为Null,就会增加1: 举个例子说明下: --创建临时表结构 CREATE TABLE Tem ... 
- 第7章学习小结 不使用STL-map过实践题:QQ帐户的申请与登陆
			目录: 一:查找的概念与术语 二:折半查找 三:二叉排序树 四:平衡二叉树 五:B-树 六:B+树 七:散列表 八:实践题:QQ帐户的申请与登陆 九:自我总结 一.查找的概念与术语 (一)查找表 查找 ... 
- golang中switch用法细节
			1. switch穿透-fallthrough, 如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透,默认只穿透一层 2. Type Switch: s ... 
- Eclipse一些技巧
			1:测试某个测试溢出,修改堆内存大小 // 模拟内存溢出 -Xms10m -Xmx10m private static void mockOOM() { List list = new ArrayLi ... 
- 列表初始化(list initialization)
			列表初始化啊就是大括号来初始化: 列表初始化的好处: 
- Maven web项目创建
			一.New →Other →Maven→Maven Module 二.填入Module Name 三.选择maven-archetype-webapp 四.填入Group Id.Artifact Id ... 
- (三十)JSP标签之自定义标签
			创建一个类,引入外部jsp-api.jar包(在tomcat 下lib包里有),这个类继承SimpleTagSupport 重写doTag()方法. jspprojec包下的helloTag类: 1 ... 
- regarding-hsts-in-netscaler
			regarding-hsts-in-netscaler 参考: Strict Transport Security (STS or HSTS) with Citrix NetScaler and Ac ... 
- Android获取设备唯一码
			String uuid = ""; String serial = null; String m_szDevIDShort = "35" + Build.BOA ... 
- C++ 语句函数再探
			1. 表达式只计算,抛弃计算结果: 2. 空语句什么也不做: 3.switch case语句漏写break,将会从匹配到的情况开始执行,直到语句结束 int main() { ; i + ; //表达 ... 
