几点注意事项C++

1
    int b[] = { 0 };
    cout << sizeof(b) << endl;
    int i = 9;
    for (i = 0; i <= 5; i++)
    {
        b[i] = i;
        cout << b[i] << endl;
    }
    cout << sizeof(b) << endl;
    cout << i << endl;

------------------------------------------------

    int b[] = { 0 };
    cout << sizeof(b) << endl;
    int i = 9;
    for (int i = 0; i <= 5; i++)
    {
        b[i] = i;
        cout << b[i] << endl;
    }
    cout << sizeof(b) << endl;
    cout << i << endl;

1) 开始数组b  int b[] = { 0 };已经确定变为一个int元素的数组,所以sizeof(b)为1*4为4个字节;虽然后面for循环将b数组元素扩充为6个,但是这种程序最好不要出现,因为一开始给数组分配内存为1个元素4个字节,后面for循环实际上超出了b数组的内存范围,导致溢出。后面的sizeof(b)依然为1*4为4个字节。

2)《变量的作用域是看变量定义在什么地方,而不是看用在什么地方

第一段程序for循环里面的i在循环外面已经定义,所以循环用的i跟外面i是一个变量,最终    cout << i << endl;输出i为6,因为for循环改变了i的数值;

但是第二段程序     for (int i = 0; i <= 5; i++) 将i在内部定义,那么这个i跟外部的i不是一个变量,for循环内部i作用域只限于for循环内部,不影响外部i为9的数值,i输出还是i=9,不因为循环而改变!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值