友情提示:本文共有 2113 个字,阅读大概需要 5 分钟。
我们已经把基础的运算符和表达式,今天我们主要就是根据几个错误的程序来巩固相关的知识。
我们先来看第一个代码:
#include
int main()
{
double x;
int i;
x=3.6;
i=x;
printf("x=%f,i=%dn",x,i);
return 0;
}
这是一个类型转换的程序,不想让编译器警告的情况下我们怎么操作呢?
类型转换我们都知道有两种,一种是自动类型转换,还有一种就是强制转换,那么自动转换有时候出现警告,我们怎么去消除这种警告呢,就需要去进行一个强制转换,强制转换的类型一般为:
我们需要在把双精度变量强制转换为整型变量时加上(int),所以我们这个程序改正过后的代码如下:
#include
int main() /*主函数*/
{
double x; /*定义变量双精度变量*/
int i; /*定义整型变量*/
x=3.6; /*给变量赋值*/
i=(int)x; /*把双精度变量强制转换*/
printf("x=%f,i=%dn",x,i); /*显示器输出结果*/
return 0; /*程序结束*/
}
我们接下来看第二个程序:
#include
int main()
{
int i;
i=5;
printf("%dn",--i);
return 0;
}
这是一个自减的程序,这个代码没有错误,只是他输出的值为4,我们怎么利用自减的特性来让他输出为5呢?
自加和自减都有两种书写格式:
++a、a++、--a、a—
那么他们不仅仅是书写格式的不一样,它们所得出的数值也不一样,符号在前的会先去进行运算后出数值,符号在后则是先输出数值在进行运算,所以我们要想i输出为5的话,我们应当把符号加为后缀,输出语句应当为:
#include
int main() /*主函数main*/
{
int i; /*定义变量*/
i=5; /*变量赋初值*/
printf("%dn",i--); /*根据自增自减特性此时应当会先输出i的初始值*/
return 0; /*程序结束*/
}
这是自增自减的相关知识。我们再来一个关于优先级这一部分的知识:
#include
int main()
{
char Cchar="A";
int i=2,j=8;
float Ffloat=1.2f;
double y;
y=Cchar-i*Ffloat/j;
printf("y=%fn",y);
return 0;
}
这个程序最终输出的值为y=64.700000,可是我们想通过更改优先级的办法让这个程序输出y=9.450000,那我们怎么操作?
我们先看y的值,这时候y=Cchar-i*Ffloat/j;我们根据优先级知道,这时候应当会想执行i*Ffloat/j这一部分的运算,自左向右,因为“*”、“/”的优先级比“-”的要高,所以程序会先执行这一部分的运算,那么我们所需要的值应当是让它先进行“-”的操作,那么我们应该给这一部分加上“()”这样优先级就会提升,具体的优先级我会在本文最后附上。
所以我们应当这样书写这个程序:
#include
int main() /*主函数*/
{
char Cchar="A"; /*定义字符型变量*/
int i=2,j=8; /*定义整型变量并赋值*/
float Ffloat=1.2f; /*定义浮点型变量*/
double y; /*定义双精度变量*/
y=(Cchar-i)*Ffloat/j; /*为变量赋值*/
printf("y=%fn",y); /*输出变量y的值*/
return 0; /*程序结束*/
}
好了以上即使运算符和表达式这一部分的知识回顾,那么下图我给大家附上运算符的优先级和结合性的汇总,希望喜欢我的可以关注我哦。
本文如果对你有帮助,请点赞收藏《用实例代码带你回顾C语言基础运算符和表达式知识点汇总》,同时在此感谢原作者。