注意sizeof()返回的数无符号数,有符号数遇到无符号数时变成无符号数

来源:互联网 发布:知羽电子相册模板30套 编辑:程序博客网 时间:2024/05/16 06:29

预测一下这道题的结果,注意unsigned与signed

#include<iostream>#include<stdio.h>using namespace std;int arr[]={1,2,3,4,5};int main(){for(int i=-1;i<sizeof(arr)/sizeof(arr[0]) - 1;i++)cout<<arr[i+1]<<endl;}
sizeof()返回的值是无符号数,有符号数遇到无符号数变成无符号数,所以在i<sizeof(arr)/sizeof(arr[0])运算中i=-1变成无符号数,那么i将变成一个非常大的数,所以这个程序没有输出 


0 0