我知道这两个函数之间的区别:Swap(int *x, int *y)vs Swap(int **x, int **y)。
但是,我不确定这种代码是如何工作的。如何将指针指向的地址与常规swap()类型交换?
例如,我相信a创建了一个本地指针变量并且它指向&ptr_x,因此当我取消引用时*x它等于&x。
那么,temp(并且*a也可以用作整数)可以保存/*b的实际地址,这就是它起作用的原因?xy
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
printf("in main:\n");
int x = 2;
int y = 8;
int *ptr_x = &x;
int *ptr_y = &y;
printf("ptr_x points to = %p\n", ptr_x);
printf("ptr_y points to = …Run Code Online (Sandbox Code Playgroud) 我想将一个对象指针的指针传递给一个函数,但是得到了错误
invalid conversion from 'CustomInterface**' to LocalLogger**'
Run Code Online (Sandbox Code Playgroud)
我尝试这样的事情:
class LocalLogger
{}
class CustomInterface: public LocalLogger
{}
foo(LocalLogger** const obj)
{
// do something
}
bar()
{
CustomInterface** p_p_obj;
CustomInterface* p_obj = new CustomInterface();
p_p_obj = &p_obj;
foo(p_p_obj); // <-- here is the error
}
Run Code Online (Sandbox Code Playgroud)
这是非常简化的,但我需要指针指针.
我有一个关于数组指针语法的问题。好吧,我们知道数组本身就是指针(我们的大学教授说的)所以为什么当我们用另一个指针(将是指向指针的指针)指向它们时,我们使用以下语法:
int array[10];
int *pointer = array;
Run Code Online (Sandbox Code Playgroud)
而不是这种语法:
int array[10];
int **pointer = &array;
Run Code Online (Sandbox Code Playgroud)
虽然我知道这使用 malloc 是正确的,但为什么不以正常方式,这是编译器或语法的事情还是我在其他地方错了??
我已将整数变量的地址存储在指针中,然后将该先前的地址存储到另一个指针中.我无法理解它是如何工作的.
#include <iostream>
using namespace std;
#include <stdio.h>
int main ()
{
int var;
int *ptr;
int **pptr;
var = 30;
/* take the address of var */
ptr = &var;
/* take the address of ptr using address of operator & */
pptr = &ptr;
/* take the value using pptr */
printf("Value of var = %d\n", var );
printf("Value available at ptr = %d\n", ptr );
printf("Value available at pptr = %d\n", pptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我想明白之间的差别a,并&a当是一个指针.
在以下示例代码中:
int main()
{
int b = 100;
int *a;
a = &b;
printf("%d %d %d", a , &a , *a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,a是给出地址的名称.那是 :
因此,我期待a并且&a当a指针时是相同的.但是在输出中,我得到的前两个值(a和&a)是不同的.
我哪里错了?
int **arr = (int **)malloc(r * sizeof(int *));
Run Code Online (Sandbox Code Playgroud)
我该如何解释上述C代码的含义?