问题描述
我正在学习如何计算数组中元素的大小和数量,并遇到了一个问题。在一个教程中,我看到了 我们可以如下计算数组中元素的数量...
int array_variable [] = {1,5,8,10};
int array_variable_number_of_elements = sizeof(array_variable) / sizeof (int);
我知道并且完全理解为什么可以替换
sizeof (int);
使用
sizeof (array_variable[0]); // or use any index value from the array_variable
视频似乎暗示仅使用int是一种很好的做法,我不明白。计算机显然不是通灵的,而int仅仅是数据类型。当同一函数中有两个int类型的数组时会发生什么?为什么这样做?之所以能行得通,是因为它与以下内容在同一行?
int array_variable_number_of_elements = sizeof(array_variable)
谢谢:)
解决方法
第二种方法更好,更通用,当您需要将数组int
更改为char
时,根本不必编辑第二行。
char array_variable [] = {'a','b','c' }; //changed this line only
int array_variable_number_of_elements = sizeof(array_variable) / sizeof
(array_variable[0]);
回答您的以下评论;
您可以按以下方式解释的行上方;
int array_variable = {1,2,3,4,5 };
int array_variable_number_of_elements = sizeof(array_variable) / sizeof ( int);
// ^^^^^^^^^ ^^^^ ^^^
// array_variable_number_of_elements = 20 / 4 ; // 20 / 4 = 5
在我的系统中,总数组size
的字节数为20,int
的大小为4字节;
数组中的元素总数为5;