zoukankan      html  css  js  c++  java
  • C++之循环体内变量

    今天做PAT题目时候看人家解答:

     1 #include <cstdio>
     2 #include <set>
     3 using namespace std;
     4 int main() {
     5     int y, n;
     6     scanf("%d%d", &y, &n);
     7     for (int i = y; i <= 3012; i++) {
     8         set<int> s; //每次循环,s都是在同一个地址
     9     //    printf("%p
    ", &s);
    10         int num = i;
    11     //    printf("%p
    ", &num);
    12         for (int j = 0; j < 4; j++) {
    13             s.insert(num % 10);
    14             num /= 10;
    15         }
    16         if (s.size() == n) {
    17             printf("%d %04d", i - y, i);
    18             break;
    19         }
    20     }
    21     return 0;
    22 }

    突然想到第8行和第10行兴义的变量是否每次都不一样,惨后输出它们的地址试试发现都是一样的,也就是说,逻辑上其实在每一次的循环中它们都应该是不一样的,因为是“新定义”的嘛。然而,如果真的就不一样了,倘若循环次数很大的话,那岂不是内存告急~想想真是自己太傻

  • 相关阅读:
    令我印象最深刻的三个老师
    硬盘大于2T安装CentOS7.X时要注意分区
    Linux网卡配置
    Python13:文件操作
    Python12:集合
    Python11:字典
    Python10:String字符串
    Python09:元组
    Python08:列表
    Python07:模块初识
  • 原文地址:https://www.cnblogs.com/fallenmoon/p/7106038.html
Copyright © 2011-2022 走看看