黑马程序员 -- IOS C语言 基础运算02
来源:互联网 发布:js弹出警告窗口 编辑:程序博客网 时间:2024/06/05 09:03
-------------------------------------- android培训、java培训、ios培训期待与您交流! --------------------------------
赋值运算
1简单赋值
int a = 10 + 5 ;
a = b = 10;
等号左边不能是常量
比如:10 = 11
2.复合赋值
附加 加减乘除余: a+ 等同于4 + 5;
int main()
{
int a = 10;
a = a + 5;
a += 5; 相当于 a=a+5
a *= 5; 相当于 a=a*5
printf("%d",a);
return 0;
}
结果为100.
运算符是有先后顺序和优先级的:
a = 5 + 6 * 5 + 8 要先算乘法 后相加,结果为41
自增自减运算符
习题:int a = 10 想给a的值加上1在赋值回去
//int a = 10 想给a的值加上1在赋值回去
#include<stdio.h>
int main()
{
int a = 10;
a = a +1;
printf("%d\n",a);
return 0;
} //结果为11
自增运算符++,如 a++ , ++a 都等于是 a= a+1;
自减运算符--, 如 a--, --a 都等于是 a= a-1;
5++ ,6++ 是错误的
a++ 和++a 的区别
1.a++
int = a = 10;
b = a++; a++ a在前面的花等于把a之前的值先赋予b,然后再用10+1得 a的值
b = 10;
a = 11;
2.++a
int a = 10
b = ++a; ++a,a的值在后面等于把a 的值先运算,在赋值给b 就等于是 ++a=1+a=1+10=11 在把11给b
a = 11;
b = 11;
3.a++ 和++a的运算
int b;
int a = 10;
b = (a++)+(++a);
解释:
b = (a++)+(++a); a的值 是 10但 a++先把10赋予了b ,b此时是10 而a++在运算后a + 1 = 10 + 1为11
但此时,++a = 1+11 =12. a的值为12,那么,b= 10+12= 22
所以b = 22;a= 12;
4.++a和a++的运算
int b
int a = 10
b= (++a)+ (a++)
解释:
++a=1+10=11 此时b = 11+ (a + 1),而a++里a 的值为11在运算,a的值为12而,b=11+11
所以结果为22
sizeof
作用:用来计算一个变量或者一个常量,一种数据类型所占的内存字节数。
基本形式:
sizeof(常量),sizeof常量
int size = sizeof(10)
int size = sizeof10
sizeof(变量),sizeof变量
int size = sizeof(10)
int size = sizeof10
sizeof(数据类型)
int size = sizeof(char,double,float,int)
关系运算符
1:条件判断
默认情况下,在程序中写的每一项正确代码都会被执行,
但一般我们都想在某个条件成立的情况下才执行某一代码。
如何判断一个条件是否成立
2,真假
在c中,条件成立为·真·,条件不成立为·假·
因此,判断条件是否成立就是判断·真·与·假·
那么怎么判断真假?
c语言规定,任何数值都有真假性
任何非0的值都是·真·,只有0才是·假·
比如10.8 ,-10.8,4.5都是真 0 则是假
3关系比较
关系运算符的结果只有两种,
1),如果条件成立,结果为1,为真
2),如果条件不成立,结果为0,为假。
int main()
{
int a = 10,b = 11;
int result = b >a;
return 0;
}
结果是1.
4,优先级
关系运算中:
== ,!= 优先级想等
< , <= , >= , >优先级相等
但高于红色
关系运算符小于算术运算符
2==3>1 先计算3>1
计算方向为,:4>3>2从左往右
习题:
一。3>4+7
先计算3>4 结果是0,0+7 结果为7
二。5!=(4+(2*7))>3 ==10
先计算2*7: 5!=(4+14)>3 ==10
在计算4+145!=18>3 ==10
在计算18>35!= 1 ==10
在计算5!=1 1==10
结果为 0
逻辑运算
逻辑运算结果只有2个 0与1;
逻辑运算分为3种: 逻辑与 逻辑或逻辑非
逻辑运算符 : && || !
逻辑运算符性质:符号两边都成立 随便一边都成立 将结果相反
一 ,逻辑与 &&
1格式:条件a && 条件b
2运算结果:
只有当条件a 和 条件b都成立时 结果是1,真
当条件a 和 条件b有一方不成立时,或者都不成立时结果是0,假
3运算过程
a)先判断条件a是否成立
如果成立 判断b是否成立,如果成立,1 真
b)先判断a是否成立,不成立就为0 假,如果a成立,那么看条件b 如果不成立 就为0,假。
比如:
int a = 10>3&&7<6 &&左边是 1 右边是0 所以右边不成立,那么 结果为0
习题:
abc各是多少
int a = 10, b = 10;
int c = (a>5)&&(++b>b);
先计算(a>5),a是 10,那么,此时 a=10 ;10>5成立,结果为1.
在计算(++b>b),b是11,c是1
结果 a是10 b是11 c是1
int a = 10, b = 10;
int c = (a<5)&&(++b>b);
先计算(a<5),a是 10,那么,此时 a=10 ;10<5不成立,结果为0.
&&左边已经不成立,所以没必要在计算右边,所以 b还是10 所以 c为0
结果 a是10 b是10 c是0,
二,逻辑或 ||
1格式:条件a || 条件b
2运算结果:
当条件a 或条件b或者a和b 随便哪一项都能成立时 结果是1,真
当条件a 和 条件b 两方都不成立时,结果是0,假
3运算过程
a)如果条件a成立,就不在判断b是否成立,因为已经成立了条件a 无论b结果如何,结果都是1,真
如果条件a不成立,在判断b是否成立,如果b成立,结果也是1,真
b)如果条件a不成立,b也不成立,结果为0 假
习题:abc分别是多少
int a = 10,b=10;
int c = (a>5)||(b++10) ; 左边已经成立,右边不用在计算
a=10 ,b=10 c=1
int c =(a<5)||(b++ - 10 ); 2步分析,一 : b++原来的值是10 ,10+1=11,b+11,
二: b++=10-10=0 结果为0 假 所以 0是c
b++ - 10 是拿之前的数来-10 10 - 10 = 0
a = 10, b = 11, c = 0
逻辑非
格式:!条件A
运算结果:就是为条件A进行取反:a成立就是0, 不成立 就是1
真的就是假的,假的就是真得。
比如:
int a = !(10>8);0
int a = !10;0
int a = !0; 1
int a = !10>8;0
int a =!!1010;1
单目运算符!5
二目运算符10>5
三目运算符
格式: 条件 ? 数值1 : 数值2
inta= 10>5 ? 9 : 89 结果是9
先判断,?钱的条件是否成立
成立返回9 不成立返回89
习题:
计算三个数谁的值最大并赋给d
int a = 10 b = 20 c = 30 d
int admax=(a>b)? a:b
int d = (admax>c) ? abmax:c
新建一个函数abmax
先比较出a和b的大小。
在比较出abmax和c的大小就得出了d的大小
int admax=(a>b)? a:b 此项不成立,取b 20 为大
int d = (admax>c) ? abmax:c 20>30 不成立取 c 结果为d = 30
- 黑马程序员 -- IOS C语言 基础运算02
- 黑马程序员-IOS-C语言基础-基本运算
- 黑马程序员 -- IOS C语言 基础运算01
- 黑马程序员IOS基础---C语言学习之基本运算
- 黑马程序员—IOS基础(C语言基本运算)
- 黑马程序员_1 c语言基础 运算
- 黑马程序员---c语言基础--基本运算
- 黑马程序员--C语言基础-运算符
- 黑马程序员-----------C语言基础-----------运算符
- 黑马程序员--ios基础--c语言--基础语法、基本运算
- 黑马程序员-IOS-C语言基础
- 黑马程序员 -- IOS C语言 基础语法
- 黑马程序员IOS-C语言-基础
- 黑马程序员-IOS开发之--C语言基础一运算符,表达式
- 黑马程序员——IOS基础---C语言学习之内存分析与位运算
- 黑马程序员---iOS基础---C语言中的位运算,文件操作等问题
- 黑马程序员——ios基础---C语言:数据类型、运算符、选择结构
- 黑马程序员——ios开发基础之C语言数据类型、运算符与输入输出
- iOS必备小技巧(非常的全)
- java 处理嵌入式数据
- C# where用法
- Android 格式化超链接
- js实现继承的各种方法及缺点
- 黑马程序员 -- IOS C语言 基础运算02
- 使用 javax.tools 创建动态应用程序
- 《网络流学习笔记02--Edmonds-Karp,Ford-Fulkerson,Dinic三种算法实现最大流》
- setTimeout和setInterval的区别你真的了解吗?
- java图形界面五子棋源代码共享
- Android应用程序资源的编译和打包过程分析
- setTimeout传参数
- VC 分割字符串以及去除路径中不合法的字符
- 关于Jenkins的一些新发现