这次主要说的是C程序中的一些东西,我上次已经说的在这就不会再提到。
常用的运算符+ - * / % ++ --这分别代表的加 减 乘 除 整除 递增 递减 其中整除的除数与被除数都得是整数,除法也有一些要说的。3.2+5/6-4.6 这个算式的结果默认为double,上次也说了double比flot大,所以平时系统会自动转换为double类型,这是类型的自动转换——低级别的数据到高级别的数据。低级可以转到高级,高级当然也可以转换为低级,但是这就属于类型的强制转换,有可能会丢失数据。强制转换也有它的格式。如:
3.2+5/6-4.6结果为double,(int)3.2+5/6-4.6是是将3.2转换为int之后计算,(int)(3.2+5/6-4.6)是将表达式的结果强制转换成int。
比较特殊的++ – 我之前已经说过,此处特别提一下++(a+b)这种是不对 的,因为++ --是使变量改变,而(a+b)是一个式子。
运算符的运算顺序也是被固定好的,它的级别倒数第二,正常从右至左。常用的赋值运算符是=,而它只能把右侧的值赋给左侧的变量,如
a=3是可以的,但a+b=3就不可以。比较特殊的就是复合的赋值运算符:+=、-=、=。其中a=3+4等价于a=a+(b) a只能是变量,b可以是任意的表达式,a*=3+4等价于a=a*(3+4),在定义变量的时候,不能用连等为多个变量的赋初值
int a=b=c=1;错误
int a=a,b=1,c=1;正确
int a,b,c;
a=b=c=1; 正确
为变量赋值:定义的同时赋值 (赋初值) int a=9;
先定义后赋值 int a; a=9;
以上两种方式等价
赋值过程中的类型转换
两侧类型一致时,直接赋值
两侧类型不一致,但都是算术类型时,自动将右侧的类型转换为左侧类型后赋值
定义变量时要防止数据溢出
简单说一下输入与输出
输入字符为scan(f"字符串",输入项的地址)字符串包含两部分:普通字符 和以%开头的格式控制字符 ,普通字符,需要在键盘原样输入,通常不写普通字符,输入项的地址,如果有多个输入项,用逗号隔开,每个输入项和之前的格式控制符按顺序相对应。
输出字符为printf(“字符串”,输出项) 字符串包含两部分:普通字符 和以%开头的格式控制字符 ,普通字符,需要在屏幕原样输出,通常用来提示
输出项,如果有多个输出项,用逗号隔开,每个输出项和之前的格式控制符按顺序相对应,如:
double a,b,c;
scanf(“a=%lf,b=%lf,c=%lf”,&a,&b,&c);
print(“a=%f,b=%f,c=%f”,a,b,c);