为什么指针在foor循环中返回0
Why pointer return 0 in foor loop
我具有以下功能:
void printKMax(int arr[], int n, int k){
int* start = &arr[0];
int* run = new int();
if(n > 1){
int* run = &arr[1];
cout << "Initial run pointer " << *run << endl;
}else {
cout << *start << endl;
return;
}
for(int i = 0; i < k-1; i++){
cout << "Run in for loop " << *run << endl;
}
delete run;
}
输入arr = {3 4 6 3 4}
和k = 4
。第一个COUT打印4
,而用于Loop Cout三次打印0
。为什么它给出0
而不是4
?为什么将指针用于循环的指示与IF语句不同?
在此声明中
int* run = new int();
有声明的指针run
指向动态分配的内存,以零。
是循环中使用的变量
for(int i = 0; i < k-1; i++){
cout << "Run in for loop " << *run << endl;
}
在if语句
中声明的另一个带有同名的指针if(n > 1){
int* run = &arr[1];
在if语句之外没有还活着。
您声明int*运行两次,填充第二个并显示第一个。
您有两个不同的变量!一个是在函数的块中定义的,并初始化为包含0的地址,另一个在然后定义的IF的块中定义,并initileiazed以地址为包含4。
您可以阅读有关标识符的可变声明/定义和范围。
相关文章:
- 为什么我的程序在for循环中k=0时返回垃圾值
- 我可以使用什么来停止循环而不是"返回 0"?
- 为什么在 while 循环中返回表达式不起作用
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 这个返回元素位置的基于循环的函数有什么问题?
- EnQueue 方法在循环队列中未正确返回C++?
- C++初学者:为什么我的编译器根据我的循环返回"name not found"?
- 如何循环访问 cpp 中的函数返回的字符指针数组
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 从子菜单返回后,正确的输入至少进入验证循环一次
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- 有没有办法将 for 循环结果返回到像三元运算符这样的函数中?
- 返回值 mxGetPr() -- 等效循环
- 返回到循环 c++
- 从 for 循环返回每个值 in C++
- 当我返回内部时,循环在C 中不起作用
- 基于范围的 for 循环,用于包含C++中的指针的自定义链表,仅返回对象
- 随机函数在循环中调用时返回相同的数字!C++
- 在 winapi 回调函数上返回 FALSE 时出现意外行为(循环被跳过?
- C++ - 返回循环开始而不检查条件