自己也是一个刚开始接触c++的小白,这两天在看数据结构时,遇到冒泡算法,具体的代码如下
#include
using namespace std;
void Bubblesort(int list[],int len);
int main()
{
int a[] = { 20,10,2,23,4,5,23,2,424,4,12 };
int len = sizeof(a) / sizeof(a[0]);
Bubblesort(a,len);
system("pause");
return 0;
}
void Bubblesort(int list[], int len)
{
for (int i = 0; i
for (int j = 0; j
if (list[j] > list[j + 1])
{
swap(list[j], list[j + 1]);
}
}
}
for (int i = 0; i < len; i++)
{
cout << list[i] << " ";
}
}
在写Bubblesort()时我就在想为什么要传一个len的整数 我直接用sizeof(list)/sizeof(list[0])多好
但是在后面运行时,就开始出错。
如果sizeof(数组名)的调用有两种情况:
1. 数组作为参数压栈,并作为参数传入 sizeof(数组名) :计算出来的值实际上是指针的长度。
2. 数组是在当前的函数中定义,随后作为参数 传入 sizeof(数组名) : 计算出来的值是整个数组的长度。但是如果当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
————————————————
版权声明:本文为CSDN博主「WalleFu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/walle_love_eva/article/details/17175423



