预测一下这道题的结果,注意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将变成一个非常大的数,所以这个程序没有输出
注意sizeof()返回的数无符号数,有符号数遇到无符号数时变成无符号数
时间: 2024-10-20 08:36:47