我正在学习如何使用指针,我做了一个简单的练习,但是很遗憾,它不起作用,如果您能帮助我修复它,我将很高兴。
练习-刚获得一个值并将其发送给功能,然后将他提高一个。
代码-
#include <stdio.h>
void incNum(int* p)
{
*p++;
}
int main()
{
int number = 20;
int* p;
p = &number;
printf("%d\n",number);
incNum(&p);
printf("%d\n",number);
return 0;
}
非常感谢您的帮助,我非常感谢
比方说:
number 20 | 1024
value | Address
具有int* p = &number
:
p 1024 | 1000
value | Address
所以:
incNum(&p) ==> incNum(1000)
*p ==> 1024
(*p)++ ==> 1025
它不是您想要传递的值,因此应该 incNum(p) ==> incNum(1024)
最后,它应该是这样的:
void incNum(int* p)
{
(*p)++;
}
int main(void)
{
int number = 20;
int* p;
p = &number;
printf("%d\n",number);
incNum(p);
printf("%d\n",number);
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句