西安北郊网站维护运营网上营销策略有哪些
一.算数运算符
int a = 3,b = 2;
int c = a + b;
注意:
/ 若是两边的数据都是整数的话,默认为整除。⼩数舍掉.
% 要求两边的运算符号⼀定要全部都是整数。否则,系统提示错误
示例代码:
int a = 0,b = 0;int sum = 0;printf("please input two data : ");scanf("%d%d",&a,&b);sum = a + b;printf("a + b = %d\n",sum);sum = a - b;printf("a - b = %d\n",sum);sum = a * b;printf("a * b = %d\n",sum);sum = a / b;printf("a / b = %d\n",sum);sum = a % b;printf("a %% b = %d\n",sum);
二.⾃增和⾃减运算符
int a = 100;
int b = 0;
b = ++a;
b = --a;
规则: 前置++,先做加法运算,在赋值b = a++;
b = a--;
规则: 后置++ 先进⾏赋值操作,在++
三.关系运算符
(1)C语⾔中规定,关系表达式值只有两个 0 (假)和 1 (真)。(2)=和==不同,=表示赋值操作,==表示逻辑判断是否相等。(3)⼀般C语⾔中定义,0为假,⾮0为真。
#include <stdio.h>int main(){int data = 0;printf("please input a data : ");scanf("%d",&data);printf("data > 30 = %d\n",data > 30); printf("data == 30 = %d\n",data == 30); printf("============================\n");printf("data = 800 : %d\n",data = 800); printf("data != 800 : %d\n",data != 800);printf("============================\n");printf("10 < data < 20 : %d\n",10 < data < 20);return 0;}
运行结果:
please input a data : 20 10data > 30 = 0data == 30 = 0============================data = 800 : 800data != 800 : 0============================10 < data < 20 : 1
四.逻辑语运算符:
1.逻辑与&&
规则:都真则真,⼀假则假
短路特性:表达式 1 为假,则不会执⾏表达式 2
示例:
int a = 10,b = 20;int ret = a > b && a;
2.逻辑或||
规则:都假则假,⼀真则真
短路特性:表达式 1 为真,则不会执⾏表达式 2
示例:
int a = 10,b = 20;int ret = a > b || a;
#include <stdio.h>int main(){int a = 0,b = 0;int ret = 0;printf("please input two data : ");scanf("%d%d",&a,&b);ret = a > b || a != 30;printf("ret = %d\n",ret);return 0;}
运行结果:
please input two data : 20 10
ret = 1
示例代码2:
#include <stdio.h>int main(){int a = 7,b = 9,c = 1;int ret = 0;ret = a > b && c ++;printf("ret = %d c = %d\n\n",ret,c); printf("+++++++++++++++++++++++++\n");ret = a < b && c ++;printf("ret = %d c = %d\n\n",ret,c); printf("========================================\n");c = 1;ret = a > b || c ++;printf("ret = %d c = %d\n\n",ret,c); printf("+++++++++++++++++++++++++\n");ret = a < b || c ++;printf("ret = %d c = %d\n\n",ret,c); return 0;}
运行结果:
ret = 0 c = 1+++++++++++++++++++++++++ret = 1 c = 2========================================ret = 1 c = 2+++++++++++++++++++++++++ret = 1 c = 2
要求⼤家⽤笔算出下列 printf 输出的结果
int value = 0;int a = 0;int b = 1;value = a && b;printf("%d\n",value);
value = a || b;printf("%d\n",value);
value = a++ && b ++;
printf("%d\n",value);value = --a || b--;
printf("%d\n",value);
value = (a + b) || (a - b);
printf("%d\n",value);
value = (a * b) && (a + b);
printf("%d\n",value);
value = !a;printf("%d\n",value);
printf("%d,%d,%d\n",a,b,value);
五.位运算符:
实例:
示例2:
#include <stdio.h>int main(){unsigned char a = 10,b = 15;unsigned char t = 0;printf("a = %d b = %d\n",a,b);a = a ^ b;b = a ^ b; a = a ^ b; printf("a = %d b = %d\n",a,b);return 0;}
示例3:
#include <stdio.h>int main(){unsigned char reg = 3; char a = -3; reg = reg << 3;printf("reg = %d\n",reg); a = a << 3;printf("a = %d\n",a); a = a >> 6;printf("a = %d\n",a); return 0;}
六.赋值复合运算符
#include <stdio.h>int main(){int a = 20,b = 10;a += b; printf("a = %d\n",a); a *= b; printf("a = %d\n",a); return 0;}
七. 逗号运算符和三⽬运算符
1.逗号运算符格式:
ret = 表达式1,表达式2,表达式3,....,表达式n功能:按顺序执⾏表达式,并将表达式n的结果,作为整个表达式的值赋值给ret。在所有的运算符中,逗号表达式的优先级最低
float x=10.5, y=1.8, z=0;
z = (x+=5, y = x+0.2) ;
z 赋值为15.7, x赋值为15.5, y赋值为15.7z = (x=y=5, x +=1) ;
z 赋值为6, x赋值为6, y赋值为5z = (x=5, y = 6, x+y ) ;
z赋值为11, x赋值为5, y赋值为6z = (z=8, x=5, y = 3) ;
z 赋值为3, x赋值为5, y赋值为3
2.三目运算符格式:
ret = 表达式1 ? 表达式2: 表达式3 ;功能:判断表达式1是否为真,若是为真则执⾏表达式2.并把表达式2最终的结果复制给ret,否则,就执⾏表达式3,并把表达式3最终的结果复制给ret,
示例:
int a = 8,b = 2
ret = a > b ? a + b : a - b;pritnf("ret = %d\n",ret);
#include <stdio.h>int main(){int a = 10,b = 20;int c = 0;int ret = 0;ret = a < b ? (c = a,a = b,b = c) : a * b;printf("result = %d\n",ret); return 0;}
练习:
定义三个整数a,b,c,⽤户从键盘输⼊赋值,从⼩到⼤,排列,然后输出 [不允许使⽤if语句]最终输出,a保存最值保存其次,c保存最⼤值
例如 :
⽤户输⼊ a = 30,b = 20,c = 10. 要求最终保存的结果为 a = 10,b = 20,c = 30.
八.运算符优先级
1.运算符优先级规律:
初等单⽬⼀⼆级 // 初等运算符和单⽬运算符分别是第 1、2 优先级
乘除求余加减移 // 这句⾥⾯的运算符全归为算术运算符,移表示移位
关系等于不等于 // 关系运算符 ( >=)
按位与来异或或 // 位运算符优先级顺序:& -> ^->l 从左向右 从右向左 从左向右
逻辑与或条件弱 // 逻辑运算符优先级顺序:&&->||,后⾯跟着优先级⽐较低 (弱) 的条件运算符
赋值逗号⼀点破 // 赋值,逗号最低