gpt4 book ai didi

c++ - C++ : variable is not referenced at all, 中的意外行为,但其值仍发生变化

转载 作者:行者123 更新时间:2023-11-28 00:24:27 26 4
gpt4 key购买 nike

<分区>

在下面的代码中(对于冒泡排序),变量origN在声明之后根本没有被引用,但是在程序结束时,origN的值> 输出为 1(而不是 4):

int main(){
int arr[] = {3,4,2,1};
int origN = 4;
int n = 4;
while(true)
{
bool swapped = false;
for(int i = 0; i<n; ++i)
{
if(arr[i] < arr[i-1])
{
swap(arr[i],arr[i-1]);
swapped = true;
}
}
n -= 1;
if(!swapped)
break;
}
cout<<"origN="<<origN<<endl;
return 0;
}

但是如果我使用变量 n 作为指针:

int *n = new int(4);

origN的值保持不变,正确输出为4!

为什么origN的值随着n的值变化?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com