C++编程中遇到的问题

  1. 函数中无法通过sizeof运算得到数组的大小及维数,因为,数组形参实际上是指针类型。
#include <iostream>
using namespace std;

// 数组作为参数时,退化为简单的指针
void getArrSize(int* arr)
{
	cout << "sizeof(arr): " << sizeof(arr) << endl;
	cout << "sizeof(*arr): " << sizeof(*arr) << endl;
}

int main()
{

	int a[4] = { 0,1,2,3 };
    int *pa = a; // 也只是简单的指针,和a不一样

	cout << "sizeof(a): " << sizeof(a) << endl;
	cout << "sizeof(*a): " << sizeof(*a) << endl;

	getArrSize(a);

	return 0;
}

输出结果:
因此,无法在函数体内计算数组的大小。

posted @ 2023-02-07 21:28  听雨画船眠  阅读(31)  评论(0)    收藏  举报