iOS阶段学习第三天笔记(运算符)
2015-06-21 12:47
323 查看
iOS学习(C语言)知识点整理笔记
1、运算符
一、算术运算符
1)表达式由变量、常量、运算符构成,有确定的类型和值
2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模)
3)算术运算符优先级 括号()> * ,/ ,% >+,-
4)%表示取余、取模 a%b 表示a除以b取余数
5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9);
6)自增自减运算符:++;- -
7)a++ 与 ++a 的区别: ++a 返回值是a+1, b=++a 相当于a=a+1然后b=a ; a++ 返回值是 a ,b=a++ 相当于b=a 然后a=a+1
二、关系运算符
1)关系运算符包括: >, >=, <, <=, ==, !=
2)关系运算符比较结果成立是 1(true),不成立结果是0(false)
三、逻辑运算符
1)逻辑运算符包括:
&&(逻辑与/并且,要2者都成立才为真);
||(逻辑或/或者 只要一个条件满足即为真);
!(逻辑非/不是) !(真)=假 !(假)=真 非0=真 逻辑运算符 一般与if连用
四、三目运算符
1)三目运算组成结构:(条件表达式)?(语句1):(语句2)
例如:c= a>b?a:b; 表示 取a b两者中的最大值赋值给c
五、赋值运算符
1)赋值运算符包括:=,+= ,-=,*=,/=,%=
2)+= 表示前变量等于变量原有的值加上后面的值 例如:a+=b 表示 a=a+b;
六、逗号运算符
1)逗号运算符优先级最低 例如 (表达式1、表达式2,.....,表达式n)=表达式n 取最后一个表达式
七、位(单bit)操作运算符
1) 按位与 & ; 按位或 | ;按位取反 ~ ;位移操作
2)代码实例:
八、各类运算符的优先级比较
1、 括号(可以嵌套)>单目(++,- -,!)>算术> 关系>逻辑>赋值
九、数据类型转换
十、宏定义
1)宏定义一般都为大写 格式:#define 别名 (大写) 表达式/ 参数
2)宏定义的作用是 增强代码可读性,方便数值修改
3)例如 通过宏定义求两数最大值 方法:
十一、输入输出
1) scanf()/getchar() 用于接收用户输入 printf()/putchar() 用于输出信息
2)scanf(“格式化字符串”,参数地址列表) scanf 输入参数必须加上“& ”取地址符号,字符串数组除外; scanf根据回车键执行,
根据Tab或空格来分隔字符,回车表示接收结束,scanf 接收输入是也可指定长度,如果输入信息大于指定长度
则从右向左截取; 例如:int a=12345;scanf(“%3d”,&a) printf(“%d”,a)输出结果为 123 ;输入信息小
于指定宽度则无影响。
3)printf(“格式化字符串”,输出信息); printf 中可通过格式化字符串中置入数字来设定输出宽度 ;
例如:printf(“%8d”,19) 向右推移8个长度输出19 ;如果输出数据大于指定宽度则不起作用
4)解决scanf输入缓冲区问题 即:当输入为char(%c)类型 前面有输入时会直接跳过本次的输入。
代码实例:
1、运算符
一、算术运算符
1)表达式由变量、常量、运算符构成,有确定的类型和值
2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模)
3)算术运算符优先级 括号()> * ,/ ,% >+,-
4)%表示取余、取模 a%b 表示a除以b取余数
5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9);
6)自增自减运算符:++;- -
7)a++ 与 ++a 的区别: ++a 返回值是a+1, b=++a 相当于a=a+1然后b=a ; a++ 返回值是 a ,b=a++ 相当于b=a 然后a=a+1
二、关系运算符
1)关系运算符包括: >, >=, <, <=, ==, !=
2)关系运算符比较结果成立是 1(true),不成立结果是0(false)
三、逻辑运算符
1)逻辑运算符包括:
&&(逻辑与/并且,要2者都成立才为真);
||(逻辑或/或者 只要一个条件满足即为真);
!(逻辑非/不是) !(真)=假 !(假)=真 非0=真 逻辑运算符 一般与if连用
四、三目运算符
1)三目运算组成结构:(条件表达式)?(语句1):(语句2)
例如:c= a>b?a:b; 表示 取a b两者中的最大值赋值给c
五、赋值运算符
1)赋值运算符包括:=,+= ,-=,*=,/=,%=
2)+= 表示前变量等于变量原有的值加上后面的值 例如:a+=b 表示 a=a+b;
六、逗号运算符
1)逗号运算符优先级最低 例如 (表达式1、表达式2,.....,表达式n)=表达式n 取最后一个表达式
七、位(单bit)操作运算符
1) 按位与 & ; 按位或 | ;按位取反 ~ ;位移操作
2)代码实例:
1 int a=0xff; printf(“%d\n”,a&0x0f)//结果为:0x0f=15 /* 分析: 1111,1111 0000,1111 —————————— 0000,1111(0为假 1为真 &条件下 假&真=假 真&真=真 ) */ a = 0xf0; printf("%d\n",a|0x0f);//结果:0xff /* 1111,0000 0000,1111 */ /*把a的第三个bit设置成0,从 第bit算起*/ a = 0xcc;//0b11001100 a = a&0xf7; /* 1100,1100 1111,0111 //0b1100,0100 0xc4=196 */ /* 把a的第三个bit设置成1 */ a = 0; a = a|0x8; /* 0000,0000 0000,1000 =0x8; */ printf("a=%d\n",a); a = 0b110; printf("%d\n",a<<2);//结果:0b1,1000=24 a = 0b0110; /* 分析: int=4字节=32bit 即 a=0b0110=0b 0000,0000,0000,0000,0000,0000,0000,0110 按位取反后的结果:1111,1111,1111,1111,1111,1111,1111 ,1001 */ printf("~a=0x%x=%d\n",~a,~a);//按位取反,0xfffffff9=-7
八、各类运算符的优先级比较
1、 括号(可以嵌套)>单目(++,- -,!)>算术> 关系>逻辑>赋值
九、数据类型转换
int main() { int a = 0xfff1; 7 char c = a;//隐式转化 printf("%d=0x%x\n",c,c);//截断,取低8bits printf("%f\n",(float)14/5);//强制类型转换,14转成float /* 1、与long运算,转成long 2、float参与运算,转成double运算 3、char 和short运算的时候,转成 int 4、有符号->无符号 */ float f = 3.14; printf("3.14+2000=%f\n",f+2000); char ch1 = -128;//0x80 int i = ch1;//char->int.位扩展:负数补1,正数补0 //0x80(char)-> 0xffff,ff80 printf("i=%d=0x%x\n",i,i); ch1 = 8;//0x8 i = ch1;//char->int.位扩展:负数补1,正数补0 printf("i=%d=0x%x\n",i,i); return 0; }
十、宏定义
1)宏定义一般都为大写 格式:#define 别名 (大写) 表达式/ 参数
2)宏定义的作用是 增强代码可读性,方便数值修改
3)例如 通过宏定义求两数最大值 方法:
1 #define MAX(a,b) a>b?a:b 2 #include <stdio.h> 3 int main(){ 4 printf("请输入两个数:\n"); 5 scanf("%d%d",&a,&b); 6 printf("最大值是:%d",MAX(a,b)); 7 return 0; 8 }
十一、输入输出
1) scanf()/getchar() 用于接收用户输入 printf()/putchar() 用于输出信息
2)scanf(“格式化字符串”,参数地址列表) scanf 输入参数必须加上“& ”取地址符号,字符串数组除外; scanf根据回车键执行,
根据Tab或空格来分隔字符,回车表示接收结束,scanf 接收输入是也可指定长度,如果输入信息大于指定长度
则从右向左截取; 例如:int a=12345;scanf(“%3d”,&a) printf(“%d”,a)输出结果为 123 ;输入信息小
于指定宽度则无影响。
3)printf(“格式化字符串”,输出信息); printf 中可通过格式化字符串中置入数字来设定输出宽度 ;
例如:printf(“%8d”,19) 向右推移8个长度输出19 ;如果输出数据大于指定宽度则不起作用
4)解决scanf输入缓冲区问题 即:当输入为char(%c)类型 前面有输入时会直接跳过本次的输入。
代码实例:
short s; printf("输入一个Short\n"); scanf("%hd",&s); printf("输出一个Short值%hd\n",s); char c,last; printf("输入一个char\n"); scanf("%c",&c);//方法一 输入缓冲区里面残留一个回车符 %c作为有效输入 scanf("%c",&c); //last=getchar();//方法二 getchar()从里面取走一个字符 17 printf("输出一个char值%c\n",c);
相关文章推荐
- IOS使用百度地图SDK,报引擎初始化失败
- iOS图片拉伸技巧
- Xamarin 绑定iOS 静态库
- ios开发,将图片存到相册中
- iOS手机应用开发原型模板及开发流程
- 转:谈谈iOS中粘性动画以及果冻效果的实现
- 斯坦福大学 iOS 7应用开发 ppt
- iOS项目开发优秀文章汇总
- xmpp-iOS-获取好友列表、聊天信息列表、聊天
- iOS开发使用.ttf或.otf外部字体库
- IOS菜鸟的所感所思(十二)——专辑接口和专辑中歌曲数据的获得(下)
- iOS9和Xcode7
- (6/18)重学Standford_iOS7开发_控制器多态性、导航控制器、选项卡栏控制器_课程笔记
- IOS系列——新建pch文件
- ios真机调试出现matching the team ID .. were found问题
- Xcode 6.3 免证书真机调试 已越狱
- ios学习笔记
- ios iphone6&plus 导航栏 变高
- 测试
- 学历iOS开发纪录(结构体和数组指针)