#一,自增自减
++i,--i 在使用i之前,先使i的值加/减1,先增减、后运算
i++,i-- 在使用i之后,使i的值加/减1,先运算、后增减
++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。int i=3,j; int i=3;
j=++i; //i的值先变成4,再赋给j,j的值为4 printf(“%d”,++i);//输出4int i=3,j; int i=3;
j=i++; //先将i的值3赋给j,j的值为3,然后i变为4 printf(“%d”,i++);//输出3
建议谨慎使用++和--运算符,只用最简单的形式,即i++,i--,且把它们作为单
独的表达式。
注意:“++”与“-”是同优先级
说明
(1)自增、自减运算,常用在循环语句中,使循环变量加(或减)1;以及指针变量中,使指针指向下(或上)一个地址。
(2)自增、自减运算符,不能用于常量和表达式。
例如,8++、--(x+y)都是非法的。
##二,赋值
赋值运算符:“=”
赋值表达式是由赋值运算符连接左边一个变量和右边一个表达式构成。优先级:!>算术>关系>&&和|1>赋值 [变量]=[表达式];
结合性:自右至左
int a=10,b=20; 表达式可以是任意的表达式,包括算术
int c; 表达式、逻辑表达式等,表达式甚至可
C元a=b+5; 以是一个变量或另一个赋值表达式。
注意:格式左边一定是一个变量,格式右边可以是任意的表达式,表达式结果的计算结果的类型应当和变量的数据类型相同。
###三,复合赋值运算符
复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。
复合赋值运算的一般格式为:表达式1 op=表达式2 a+=b-1它等价于:表达式1=表达式1 op (表达式2) a=a+(b-1)
例如,x+= 3 /* 等价于x=x+3 */
y *=x+ /*等价于y=y*(x+6),而不是y=y*x+6*/
####四,逗号运算符:
作用:将几个表达式隔开并以此计算。
优先级:最低 【表达式1],[表达式2],..[表达式n]
结合性:自左至右
整个表达式的值:最后一个表达式的值
首先计算表达式a=3*5,然后计算a*4,
最后计算a+1。最终a被赋值为15,
a=3*5, a*4, a+1; 整个表达式的值为16。
逗号求解过程:自左至右,依次计算各表达式的值,最后一个表达式的值即为整个逗号表达式的值。
条件运算符与表达式
条件运算符: ?:
作用:判断一个逻辑表达式的结果,如果为真则指定执行某个表达式,如果为假则指定执行另外的表达式。条件表达式的实质就是起程序控制作用。
表达式1 ?表达式2 :表达式3
求值规则:先求解表达式1的值,若为真(非0),求解表达式2,并把表达式2的值作为整个条件表达式的值;若表达式1的值为假(0),求解表达式3,并把表达式3的值作为整个条件表达式的值。
例:
y=x>10? x/10:x>0?x:-x
当x的值为整型的15时,表达式的结果?
y=(x>10? x/10:x>0 ? x:-x)
y = (x>10 ? x/10:(x>0 ? x:-x))
y=(x>10?x/10:(x>0.? x:-x))
#五,类型转换
1.自动类型转换:在运算时不必用户干预,系统自动进行的类型转换。
2.强制类型转换:当自动转换类型不能实现目的时,可以用强制类型转换。
#自动类型转换包括赋值转换和运算转换
·浮点型赋值给整型,结果将舍弃浮点数小数部分。
·整数赋值给浮点数,数值不会发生变化,结果以浮点数的方式存在。
·字符型赋值给整型,数值不会发生变化,但以整型的方式存储,内存空间变大。
·整型赋值给字符型,只把整型变量低8位赋值给字符型变量。
·双精度浮点数赋值给单精度浮点数,有效位会减少,丢失的部分四舍五入。
#运算转换
【C语言允许整型、实型、字符型数据进行混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后再进行运算。转换的过程是C语言编译器自动进行的。】
·转化按数据占用字节数增加的方向转换,例如int类型和short类型的变量进行计算时,会把short类型转换成int类型之后再进行计算。
·浮点数运算都是按照双精度进行的,float类型的变量会先转换成double类型再进行计算。
#强制类型转换
强制类型转换是由程序员通过类型说明符实现的,通过强制类型转换可以将一种类型的变量强制转化为另一种类型。
(类型说明符)[表达式]
类型说明符和表达式都必须加括号,如果表达式是单个变量则可不加。
无论是强制类型转换还是自动类型转换,都不改变其原变量的数据类型。即对一个变量进行强制转换后得到的一个新类型的数据,原来的变量类型是不变的。
####六.何谓入?何谓出?
1.输入输出是以计算机主机为主体而言的输出:从计算机向外部输出设备输出数据
输入:从输入设备向计算机输入数据
2.C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的
3.要在程序文件的开头用预处理指令#include把有关头文件放在本程序中
>格式输入函数:scanf格式输出函数:printf
>字符输入函数:getchar字符输出函数:putchar
字符串输入函数:gets字符串输出函数:puts
✔所学代码
自增自减
#include "stdio.h"
{int main()
int j,i=2;
j=-i++;
printf("j=%d,i=%d",j,i);
}
复合赋值运算
#include"stdio.h"
int main()
{ int a=12;
a+=a-=a*12;
printf("a=%d",a);
}
逗号
#include "stdio.h"
int main()
{ int num;
num=(2+2,2*3,5);
printf("num=%d",num);
}
条件运算与表达式
#include "stdio.h"
int main()
{ int y,x=15;
y=x>10?x/10:x>0?x:-x;
printf("y=%d",y);
}
赋值转换
#include "stdio.h"
int main()
{ int i=257;
charch=i;
intj=3.1415;
printf("%d,%d",chj);
}
运算转换
#include"stdio.h"
int main()
{ char ch='a';
int i=13;
float x=1.25;
double y=8.00;
printf("%f",i+ch+x*y);
}
强制类型转换
#include"stdio.h"
int main()
{ int a=2,b=5;
float x=4.4;
printf("%d\n",b/a);
printf("%f\n",(float)b/a);
printf("%f\n",(float)(b/a));
printf("%f\n"(int)x%a+x);
}
求字节数
sizeof ()运算符是一个单目运算符,用于计算一个某种类型的运算量所占用
的字节数。
sizeof(类型标识);
sizeof(变量名);或sizeof 变量名;
#include"stdio.h"
intmain()
{ int a;
doubie x;
printf("%d,%d\n",sizeof(a),sizeof x);
printf("%d,%d",sizeof(int),sizeof(double));
}
就先更到这吧,ღ