|
发表于 2020-9-1 13:03:39
|
显示全部楼层
是你自己的代码把自己搞迷糊了。针对你自己的代码说明下。
- int main()
- {
- int aa[10] = {1,2,3,4,5,6,7,8,9,10};
- cout << sizeof(aa)<<endl; //答这个结果是40,【第一步显示】
- ...
- maxmin(aa, &a, &b);【第二步】调用你的函数
- ...
- return 0;
- }
复制代码
你的函数maxmin
- void maxmin(int str[],int *maxx,int *minx) //【第三步】这里面的int str[]行参进来的只是aa[10]数组的指针
- {
- cout << sizeof(str)<<endl;//【第四步显示】而这里就是显示数组指针占用字节的大小 4Byte。
- for (int a = 0; a < sizeof(str)/sizeof(str[0]); a++)//【误区】sizeof(str)/sizeof(str[0])实际结果是1
- {
- ...
- }
- }
复制代码
解决你疑惑的代码调试更改:
- #include <iostream>
- #include "inc.h"
- using namespace std;
- void maxmin(int str[], int* maxx, int* minx)
- {
- cout << "sizeof(str)" << sizeof(str) << endl;
- for (int a = 0; a < sizeof(str) / sizeof(str[0]); a++)
- {
- cout << "sizeof(str) / sizeof(str[0])这个数值:" << sizeof(str) / sizeof(str[0]) << endl;
- }
- }
- int main()
- {
- int aa[10] = { 1,2,3,4,5,6,7,8,9,10 };
- cout <<"sizeof(aa)是多少呢?=" <<sizeof(aa) << endl;
- int a = aa[0];
- int b = aa[0];
- maxmin(aa, &a, &b);
- system("pause");
- return 0;
- }
复制代码
要解决问题,把你那些垃圾代码删除,然后重点测试自己的疑惑。 |
|