gpt4 book ai didi

c - 了解 C 中的内存地址和指针

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:26 24 4
gpt4 key购买 nike

我收到了以下关于我的一个练习题的问题,它说要确定此代码打印的内容:

#include <stdio.h>
int main(){
int ids[3] = {100,200,300};
int *salary, salary1, salary2, *salary3;
salary1 = ids[0] * ids[1];
salary = &ids[1] ;
salary2 = *(ids+1)* *(ids+2);
salary3 = ids+2;
printf("*salary = %d\nsalary1 = %d\n", *salary, salary1);
printf("salary2 = %d\nsalary3 = %p\n", salary2, salary3);
}

我对这段代码有点困惑。首先,在第 4 行:

    int *salary, salary1, salary2, *salary3;

如果行首已经使用星号,为什么 salary3 的开头有星号?

其次,当它说:

    salary1 = ids[0] * ids[1];

当我们不知道 ids[1] 的值时,我们应该如何确定 salary1 的值?

最佳答案

why is there an asterisk at the beginning of salary3 if an asterisk was already used in the beginning of the line?

星号表示下一个变量是指针。这与:

int *salary;
int salary1;
int salary2;
int *salary3;

但在一条线上。

how are we supposed to determine the value of salary1 when we don't know the value of ids[1]?

但是您确实知道 ids[1] 的值。是 200。

关于c - 了解 C 中的内存地址和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42261875/

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