小编cno*_*oob的帖子

C指针 - 指向相同的地址

#include <stdio.h>
#include <stdlib.h>

void foo(int *a, int *b);

void foo(int *a, int *b) {
    *a = 5;
    *b = 6;
    a = b;
}

int main(void) {
    int a, b;
    foo(&a, &b);
    printf("%d, %d", a, b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么a = b(foo)不起作用?printf输出"5,6"谢谢.

c pointers

4
推荐指数
1
解决办法
9355
查看次数

C指针 - 不同的地址

我正在尝试学习C指针,但我无法理解某些东西......以下代码:

#include <stdio.h>

void foo(int *x, int *y);

void foo(int *x, int *y) {
    printf("x = %p\ny = %p\n", &x, &y);
    *x = 5;
    *y = 6;
}

int main(void) {
    int a, b;
    printf("a = %p\nb = %p\n", &a, &b);
    foo(&a, &b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么地址不同?第一个printf(主)输出两个地址.另一个printf(foo)输出不同的地址.我将地址传递给foo(&operator).

c pointers memory-address

0
推荐指数
1
解决办法
317
查看次数

标签 统计

c ×2

pointers ×2

memory-address ×1