您的位置:首页 > 编程语言 > C语言/C++

黑马程序员 -- IOS C语言 基础运算02

2015-02-11 17:30 281 查看
-------------------------------------- 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[/b]

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





















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: