c语言表达式举例,用实例代码带你回顾C语言基础运算符和表达式知识点汇总

我们已经把基础的运算符和表达式,今天我们主要就是根据几个错误的程序来巩固相关的知识。

a93e9b044b54c584e23ead06510d9e62.png

我们先来看第一个代码:

#include

int main()

{

double x;

int i;

x=3.6;

i=x;

printf("x=%f,i=%d\n",x,i);

return 0;

}

这是一个类型转换的程序,不想让编译器警告的情况下我们怎么操作呢?

类型转换我们都知道有两种,一种是自动类型转换,还有一种就是强制转换,那么自动转换有时候出现警告,我们怎么去消除这种警告呢,就需要去进行一个强制转换,强制转换的类型一般为:

5495b6ac668a1abcc3fe6583b6931877.png

我们需要在把双精度变量强制转换为整型变量时加上(int),所以我们这个程序改正过后的代码如下:

#include /*头文件*/

int main() /*主函数*/

{

double x; /*定义变量双精度变量*/

int i; /*定义整型变量*/

x=3.6; /*给变量赋值*/

i=(int)x; /*把双精度变量强制转换*/

printf("x=%f,i=%d\n",x,i); /*显示器输出结果*/

return 0; /*程序结束*/

}

我们接下来看第二个程序:

#include

int main()

{

int i;

i=5;

printf("%d\n",--i);

return 0;

}

这是一个自减的程序,这个代码没有错误,只是他输出的值为4,我们怎么利用自减的特性来让他输出为5呢?

自加和自减都有两种书写格式:

++a、a++、--a、a—

那么他们不仅仅是书写格式的不一样,它们所得出的数值也不一样,符号在前的会先去进行运算后出数值,符号在后则是先输出数值在进行运算,所以我们要想i输出为5的话,我们应当把符号加为后缀,输出语句应当为:

#include /*头文件。预处理命令*/

int main() /*主函数main*/

{

int i; /*定义变量*/

i=5; /*变量赋初值*/

printf("%d\n",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=%f\n",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=%f\n",y); /*输出变量y的值*/

return 0; /*程序结束*/

}

好了以上即使运算符和表达式这一部分的知识回顾,那么下图我给大家附上运算符的优先级和结合性的汇总,希望喜欢我的可以关注我哦。

79d46d691d5c8e9253ee35d0ee6e6e98.png

53945b08aac129d600c9e22da29e9fff.png

举报/反馈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值