1. 程式人生 > >C語言之通過函式引數修改實參

C語言之通過函式引數修改實參

#include <stdio.h>

int  x = 1;
int  y = 2;
int *p = &x;

void modify_1(int   a) {  a = 11; }//通過變數傳遞,對內容修改
void modify_2(int  *a) { *a = 22; }//通過地址傳遞,對內容修改
void modify_3(int  *a) {  a = &y; }//通過地址專遞,對地址修改
void modify_4(int **a) { *a = &y; }//通過地址指標傳遞,對地址修改

int main(int argc, char *argv[])
{
    printf("Hello C-Free!\n");

    printf("&x = %p\r\n", &x);
    printf(" x = %d\r\n",  x);
    printf("&y = %p\r\n", &y);
    printf(" y = %d\r\n",  y);
    printf("&p = %p\r\n", &p);
    printf(" p = %p\r\n",  p);
    printf("*p = %d\r\n", *p);
    printf("-------------\r\n");

    x =  1; modify_1( x); printf("x = %d\r\n", x);
    x =  1; modify_2(&x); printf("x = %d\r\n", x);
    p = &x; modify_3( p); printf("p = %p\r\n", p);
    p = &x; modify_4(&p); printf("p = %p\r\n", p);

    getchar();
    return 0;
}