liangmeisheng 发表于 2020-11-29 11:31:55

c++

#include<iostream>
using namespace std;

void change(int &a)
{
        if(a == 1) a = 0;
        if(a == 0) a = 1;
}
main()
{
        int b = 1;
        change(b);
        cout<<b;
}

为什么输出1 啊

风过无痕丶 发表于 2020-11-29 12:02:50

#include<iostream>
using namespace std;

void change(int *a)
{
      if(*a == 1) {

            *a = 0;
      }
         else if(*a == 0) {

            *a = 1;
      }
}

int main()
{
      int b = 1;

      change(&b);
      cout<<b;

      return 0;
}

jackz007 发表于 2020-11-29 12:07:23

本帖最后由 jackz007 于 2020-11-29 12:11 编辑

void change(int &a)
{
      if(a == 1) a = 0;      // 当 a == 1 时,a 在这里被改为 0
      if(a == 0) a = 1;      // 却又在这里被改为 1
}
void change(int &a)
{
      if(a == 1) a = 0   ;
      else if(a == 0) a = 1;// 修改这一句,把两个判断合并成同一个判断
}
页: [1]
查看完整版本: c++