如何try()修改函数(以及它的调用)以从下面的程序中获得11的输出?
#include <stdio.h>
/* declare try() here */
int main(void)
{
int x = 10;
try(); /* Call can change */
printf("%d\n", x);
return 0;
}
void try() /* Signature can change */
{
/* how to change x here?? */
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*ado 20
要更改x函数内的值,try()请使用指向变量的指针并在其中进行更改.
例如,
void try(int *x)
{
*x = 11;
}
int main()
{
int x = 10;
try(&x);
printf("%d",x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您需要传递一个指向内存位置的指针(原始指针的副本)。否则,您只是修改原始值的副本,该副本在函数退出时就消失了。
void Try( int *x );
int main( void )
{
int x = 10;
Try( &x );
/* ... */
}
void Try( int *x )
{
*x = 11;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19985 次 |
| 最近记录: |