首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C代码循环中的重置变量

C代码循环中的重置变量
EN

Stack Overflow用户
提问于 2014-08-26 21:01:55
回答 6查看 11K关注 0票数 1

我正在尝试编写一些C代码来增加ip地址。我希望其中一个变量"j“在达到256后将其重置为0,因为每八进制只有255个ip地址。我的问题是,我似乎不能使"j“回到0。你知道我做错了什么吗?

代码语言:javascript
复制
int main()
{

    int breakCount = 300;

    int j = 0;
    int x = 0;

    for(int i = 0; i < breakCount; i++) 
    {
        printf("class-map type traffic match-all cm%d\n",i);
        printf("match source-address ipv4 100.%d.%d.0\n",x,j);

        j++;

        if (j == 256)
        {
            x++;

            int j = 0;
        }
    }

    return 0;
}

/*代码片段输出*/

代码语言:javascript
复制
match source-address ipv4 100.0.253.0
class-map type traffic match-all cm254
match source-address ipv4 100.0.254.0

class-map type traffic match-all cm255
match source-address ipv4 100.0.255.0

class-map type traffic match-all cm256
match source-address ipv4 100.1.256.0

class-map type traffic match-all cm257
match source-address ipv4 100.1.257.0
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-26 21:04:16

你试过把零赋值给j吗?

代码语言:javascript
复制
if (j == 256)
{
    x++;

    j = 0;
}
票数 4
EN

Stack Overflow用户

发布于 2014-08-26 21:03:51

从重设intint j = 0;中删除它(在循环中),因为现在您创建了一个局部变量,而不是使用前面声明的变量。

票数 6
EN

Stack Overflow用户

发布于 2014-08-26 21:06:17

看起来你在增加单个八位数。最好先将虚线的IPv4字符串转换为一个32位的无符号int,然后再进行增量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25515074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档