#考试酷#A13_Precedence and Order of Evaluation-2

不太懂的题目:10 7x/y=1f = y+ x/=1= 2+2=4注意y==1是判断句1 && 0=0又来了赋值符号比逻辑符号优先所以相当于 z= 1 & 1;所以z=1floating point exception——浮点数例外这个错误什么时候出现呢?1、高版本GCC编译的程序在低版本GCC的环境下运行会出现这个错误;2、程...
摘要由CSDN通过智能技术生成

不太懂的题目:10 7


1
x/y=1
f = y+ x/=1
= 2+2=4


2
注意y==1是判断句
1 && 0=0


3
又来了
赋值符号比逻辑符号优先
所以相当于 z= 1 & 1;
所以z=1


4
floating point exception——浮点数例外
这个错误什么时候出现呢?

1、高版本GCC编译的程序在低版本GCC的环境下运行会出现这个错误;
2、程序中出现除0的情况,这种情况可用GDB调试找到问题代码,这里就不赘述了;

这里显然是第二种情况啦,因为y%=2的时候会得到0,而0又要作为x的除数


5
<<是一个新的符号
在C语言中类似一个输出赋值符
z = x << ( 1 > 5 );
z = x << 1;
相当于 x =1; z = x;

补充一下关于符号的相关信息:
用>>于cin对象,表示从标准输入,输入数据到变量中
<<用于cout对象,表示将变量数据,输出到标准输出中


6
c语言garbage value意思是垃圾代码。【//, 就是它】

warning:the left operand of == is a garbage value
当出现这个警告(内存泄露)的时候,是由于变量在不满足条件的时候,没有给变量赋值,会造成这样的警告。
  解决办法是:可以将变量初始化一个值,或者保证在进行i判断的时候一定有值。

20200322 修改

*p++——这里的自增是对指针变量自增,不是对指针指向的变量自增

#include<stdio.h>
int main()
{
    int x=3;
    const int *p = &x;
    printf("%d\n",*p);
    printf("%d\n",p);
    
    *p++;
    printf("%d\n",*p);
    printf("%d\n",p);
    return 0;
}

结果——
3
-736096508
-2067035392
-736096504

#include<stdio.h>
int main()
{
    int x=3;
    const int *p = &x;
    printf("%d\n",*p);
    printf("%d\n",p);
    
    x++;
    printf("%d\n",*p);
    printf("%d\n",p);
    return 0;
}

结果——
3
851444340
4
851444340


7
等等 这个我忘记了 往前面翻一下


8
因为是逻辑符号优先
所以就相当于z = 1 = 1
因为中间的1不是变量,所以赋值无效
所以就是compile time error


9
!x = 1
1 && 2 =1
所以填true


10
我也不太见过这个~x & y
我猜大概~x也是相当于!x的意思
或者是啥我也不太懂

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值