在此帖子(Why the result of this code is the same when the arg is different?中,chg
的参数为yay *lol
,其内部为lol
(请注意,前面没有星号)。但是为什么在这段代码中却显示错误?
void chg (int *lol) {lol=9;}
int main ()
{
int a=5;
int *boi=&a;
printf ("%d\n", *boi);
chg (boi);
printf ("%d\n", *boi);
return 0;
}
[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
那么,参数中不同的数据类型意味着它的工作方式不同吗?
答案 0 :(得分:0)
在功能上应该这样使用
void chg (int *lol) {
*lol=9;
}
因为它是指针,所以它保留一个地址。带有*
的符号,您可以这样说。转到该地址并分配该值。
您也可以像这样使用您的函数
int main ()
{
int a=5;
int *boi=&a;
printf ("%d\n", *boi);
chg (&a); //send address of a.
printf ("%d\n", *boi);
return 0;
}
赞。意思是一样的