c++: sizeof(int[3])中的int[3]是什么?

c++: what is int[3] in sizeof(int[3])

本文关键字:int 中的 是什么 c++ sizeof      更新时间:2023-10-16

这是我的例子:

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int ar[][3] = {1, 2, 3, 4, 5, 6, 7};
    //cout << int[3]<<endl; // error C2062: type 'int' unexpected.
    cout << "sizeof(ar) / sizeof(int[3])  "<< sizeof(ar) / sizeof(int[3]) << endl;; 
    system("pause");
    return 0;
}

它来自一本书,虽然没有给出解释。这里的int[3]是什么?为什么它只能作为sizeof的参数?

int[3]是一个类型声明,表示一个由三个整数组成的数组。

你的注释代码给出了一个错误,因为你不能使用类型作为变量

sizeof(int[3])是包含三个整数的数组的大小,以字节为单位。sizeof不是在程序运行时调用的实际函数-它在编译时解决。sizeof(ar) / sizeof(int[3])将为您提供数组中的行数,因为每行是3个整数长(您将其声明为int ar[][3])。

声明

int ar[][3] = {1, 2, 3, 4, 5, 6, 7};

用于一个由整数三元组组成的数组——它是一个二维数组。

sizeof表达式

cout << "sizeof(ar) / sizeof(int[3])  "<< sizeof(ar) / sizeof(int[3]) << endl;

打印得到的完整三元组的个数。最后一个整数7不属于任何三元组。您应该看到2被打印出来。ar[0]包含{1, 2, 3}, ar[1]包含{4, 5, 6}