1

私は c が常に値を渡すことを知っていますが、ポインターがある場合:

int  i = 4;
int * p;
p = &i;

それから私は関数を持っています、pそれにポインタを渡し、変数の値を変更する方法はi?

void changeValue(int *p)
{
}

ポインターを渡し、が指す変数を変更する方法はp?

4

5 に答える 5

2
void changeValue( int* ) ;

int main( void )
{
    int  i = 4; // Suppose i is stored at address 1000h
    int * p;    
    p = &i;     // Now p stores the address of i that is 1000h

    changeValue(p); // Can also be written as changeValue(&i);
    // Here you are passing the address of i to changeValue function

    return 0 ;
}

void changeValue( int* p ) // Accept a parameter of type int*
{
    *p = 100 ; // store the value 100 at address 1000h
    return ;
}
于 2013-10-21T14:19:25.650 に答える