.诗 2021-07-16 15:36 采纳率: 59.1%
浏览 22
已采纳

一个c++问题不太懂!


#include<iostream>
using namespace std;
int main(){
    int a,b,k;
    while(cin>>a>>b){
        k=a+b;
        if(a!=0&&b!=0){
            int k;
            k=a-b;
            cout<<k<<endl;
        }
        cout<<k<<endl;
    }
} 

1.这两次定义变量k怎么解释?
2.为什么可以定义两次?

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-07-16 15:42
    关注

    (1)都是变量,第一个是记录a+b的和,第二个记录a-b的差
    (2)因为第二个k的作用域在if语句中,出了if语句后就失效了。第7行和13行的k使用的是第5行声明的k。
    因为作用域不同,所以可以申请两次。
    第5行的k的作用域是整个main函数。
    第9行的k的作用域只有9-11行。
    在9-11行内,优先使用局部变量,也就是优先使用第9行定义的k
    如有帮助,请采纳一下,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月16日
  • 创建了问题 7月16日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?