如何通过在 C 中的两个函数传递其地址来操作 int



我在main中有一个名为'end'的int。

函数中的主调用,函数本身在函数中调用。

到目前为止,我能够让第一个函数通过向它发送地址并让它期望一个指针来操作"end"。但是,我不能将其发送到下一个函数,并让它操作main中调用的"int"。

到目前为止,我有以下内容适用于一个功能;

适用于一个函数的缩写代码:

void function(int* end);
int main(void)
{
   end = 0;
   function(&end);
}
void function(int* end)
{
   *end = 1;
   // At this stage I want to call in another function, and have it be able to manipulate 'end'
}

只要继续传递指针。

void function2( int *end ) {
    *end += 41;
}
void function( int *end ) {
    *end = 1;
    function2( end );
}

请记住,在您的函数中,您已经有一个整数指针 - 确保您继续传递指针end而不是指向指针&end的地址:

#include <stdio.h>
void function( int *end );
void another_function( int *end );
int main( int argc, char *argv[] ) {
   int end = 0;
   function( &end );
   printf( "end: %dn", end );
}
void function( int *end ) {
   *end = 1;
   another_function( end );
}
void another_function( int *end ) {
   (*end)++;
}

输出: end: 2

最新更新