#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"谢谢.
Jam*_*lis 10
它确实有效; 它只是没有做你认为它做的事情.
在foo(),a = b将指针更改为指向a任何b点.它对函数之外的任何东西都没有影响; 它只会改变指针.
如果要将指向的int的值更改为与指向的int a的值相同,则b需要使用*a = *b,类似于已经在函数中执行赋值的方式.
| 归档时间: |
|
| 查看次数: |
9355 次 |
| 最近记录: |