C语言程序设计——运算符和表达式

运算符和表达式
表达式由操作符和操作数组成
表达式的产生有以下两种情况:
1.放在赋值语句的右侧
2.放在函数的参数中
每个表达式的返回值都具有逻辑性
表达值的使用

#include <stdio.h>
int main(int argc, char const *argv[])
{
    
    
 ine a,b,v;
 int a=1;
 int b=2;
 int c=3;
 printf("the frist number is:%d\n",a );
 printf("the second number is:%d\n",b );
  return 0;
}

运算性质
赋值运算符
算数运算符
增1和减1:
作为前缀运算符时:
++ n --n;
m=++n:/*n=n+1
m=n b
*/
作为后缀运算符时:
n++ n–:
m=n++:/*m=n
n=n+1
*/
类型强转
关系运算符
逻辑运算符
位运算符
操作数
运算对象(常量、变量、函数)
自动类型转换:
数值溢出:
上溢出:
|一个数值运算结构|>|类型能表示的最大数|
进位超过最高位而发生进位丢失
或进位到达最高位而改变符号位
对不同类型数据的运算结果,取值范围较大的类型
所有操作数都转换成取值范围较大的操作数的类型
数值精度损失:
在不同类型的数据进行强行转换的过程中,小范围的数据类型转换成大范围的数据类型会损失其中的精度
printf();格式字符
%d 输出十进制有符号int型
%u 输出十进制无符号int型
%f 以小数形式(6位小数)输出float,double型
%e 以标准指数形式输出float,double型
%c 以字符形式输出单个字符
l 加d、u前输出long型
h 加d、u前输出short型
m 数据占用的最小域宽
ASCLL码可以大小写英文字母的ASCLL码值相差32
单个字符的输入输出:
putchar(a) /像屏幕输出一个字符,字符型变量a的值/
字符输入函数getchar()
a =getchar() /从键盘接受的字符作为getchar()的函数值
无参数
/

/*大写英文字母转换成小写英文字母*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
    
    
 char a;
 putchar("请输入您的英文字母");
 a=getchar();
 a=a+32;
 putchar(a);
 putchar('\n');
 return 0;
 }
/*输入三个数据类型 整型  字符型  浮点*/
#include <stdio.h>
int main(){
    
    
 int a;
 char b;
 float c;
 
printf("Please input an  integer :" );
 scanf("%d",&a);
 printf("integer:%d\n",a );
 
printf("Please input a  charreacter:");
 scanf(" %c",&b);
 printf("%c\n",b );
 
printf("Please input a float number:" );
 scanf("%f",&c);
 printf("%f\n",c );
 return 0;
}

关系运算符和逻辑运算符
关系运算符
算术运算符->关系运算符(true(1) false(0))

<
<=

=
高于后两个优先级
==
!=

/*例子*/
#include <stdio.h>
int main(){
    
    
 int a,b,c;
 a=1;
 b=2;
 c=3;
 printf("%d\n",a>b>c ); 
 /*
                                 a>b>c我们可以看作(a>b)>c
                                 (a>b)=3>2,为真,所以a>b的值为1
                                   带入(a>b)>c中,得出1>1,
                                   所以a>b>c的假=0
                             */
  return 0;
}

逻辑运算符和逻辑表达式
&& 逻辑与
|| 逻辑或
! 逻辑非
逻辑非——右结合
逻辑运算符的短路特性:
若表达式的值可有先计算的左操作数的值单独推导出来,那么将不再计算右操作数的值
条件表达式:
表达式1 ? 表达式2 :表达式3
/如果表达式1的值为真,那么将表达式2的值赋给整个条件表达式,如果表达式1的值为假,
那么将表达式3 的值赋给整个条件表达式
/

/*列子;求两个数的最大值*/
#include <stdio.h>
int main(){
    
    
 int a ;
 int b;
 printf("Input  a,b");
 scanf("%d %d",&a,&b);
 printf("max=%d\n",a>b ? a:b); 
 return 0;
 }

猜你喜欢

转载自blog.csdn.net/weixin_45743004/article/details/103812333