c - 指向作为函数参数的指针的指针
问题描述
我有以下代码:
void change_adrs(int **q)
{
int * otheraddess;
*q = otheraddress;
}
我无法理解这个任务:*q = otheraddress;
谁能帮我解释一下。为什么我们不能使用另一个赋值,例如:
**q = otheraddress;
*q = *otheraddress;
q = &otheraddress;
解决方案
看下的赋值和*q = otheraddress;
看下面的一样:
int x = 4;
int y = x;
您取 2 个相同类型的变量并在它们之间进行分配。
在您的情况下,您使用 int 变量的地址。
int *otheraddress;
是一个变量,他可以获得一个地址(& 运算符)到 int 变量,例如:
int x = 4;
int *p = &x; //p<=the address of x
并且int **q;
可以获得一个可以获取 int 地址的变量的地址。比如你的第三个作业(应该可以正常工作):
int x = 4;
int *p = &x;//p<=the address of x
int **q = &p;//q<=the address of p
对于其他任务:
**q = otheraddress;
您尝试将 int* 分配给 int**
*q = *otheraddress;
您尝试将 int 分配给 int *
推荐阅读
- jquery - jquery sortable connectWith到rails表单
- opencv - 文本文档中的块方案检测
- java - 只安排一次线程。
- mongodb - Mongodb 深度嵌套数组计数
- python - tempfile.NamedTemporaryFile 在任务计划程序中崩溃
- flurl - 反序列化问题GetJsonAsync
与 Flurl - php - Left Outer Join 的条件谓词评估较晚,导致性能问题。甲骨文 8i
- swift - Alamofire 缓存响应离线。斯威夫特 4
- excel - excel条件格式化多个函数
- delphi - Indy“对等连接重置”错误。10054 在特定网站上