赋值语句即可传递数值。 指针变量: 声明 int *p; 语句中 *p 表示 值, p 表示 地址。 普通变量: 声明 int x; 语句中 x 表示 值,&x 表示 地址。 #include <stdio.h> int A(int a,int *b) { *b=a; //赋值语句即可传递数值 return a; } int main() { int a,b,c; a=10; c=A(a,&b); printf("%d %d %d\n", a,b,c); return 0; }
追问
哦,就是说赋值的时候要加一个*,不能直接是b=×××了
浅笑末路繁华
2024-09-23 01:05:05
直接在A中用一个赋值语句就可以改变main中变量b的值,例如:*b=10;这样main中b的值就改为10了。 C语言中在函数中定义的变量都是局部变量,仅在该函数中可用。虽然 main 和 A 中都定义了名为 b 的不同类型变量,但这两个不是同一个变量,存储的位置也不同,作用的范围也不同。尽管main调用了 A ,但main中的变量b 在A中是不起作用的。但为什么通过A又能直接改变main中的b呢? 这就是 A 中指针变量 b 的作用了,A 被调用时,A中的 b 被赋予了main 中 b的地址,即 A中的指针 b 指向了 main 中的整型变量 b。在A中对 *b 赋值实际上就是给 main中的 b 赋值,也就可以改变main 中 b 的值。