现在的位置: 首页 > 综合 > 正文

传值和传参数

2014年09月05日 ⁄ 综合 ⁄ 共 1388字 ⁄ 字号 评论关闭
/*****************************************************

 * 传值和传参数的经典示例

 * written by Ln

 *****************************************************/



#include<stdio.h>

#include<string.h>

#include<stdlib.h>

 

int get(int &x)

{

    x = x*x;

    printf("get()_&: x: %d /n", x);

    return x;

}

 

int get1(int *x)

{

    *x = (*x)*(*x);

    printf("get_*: x: %d /n", *x);

    return *x; 

}

int get2(int x)

{

    x = x*x;

    printf("get_int: x: %d /n", x);

    return x;  

}

 

int main(void)

{

    int *p;

    p = new int(10);     

   

    printf("值调用之前的参数初试值 : p: %d /n", *p);    

    printf("值调用,返回值:main()_int_return: p: %d /n", get2(*p));    

    printf("值调用之后的参数值:main()_int: p: %d /n", *p);

    printf("-----------------------------------------------------------/n");

    

    int &pp = *p;  

    printf("引用调用之前的初试值 : p: %d /n", *p);               

    printf("引用调用,返回值:main()_&_return : p: %d /n", get(pp)); 

    printf("引用调用之后的参数值:main()_&: p: %d /n", *p);  

    printf("-----------------------------------------------------------/n");

    

    printf("指针调用之前的初试值 : p: %d /n", *p);

    printf("指针调用,返回值:main()_*_return: p: %d /n", get1(p));

    printf("指针调用之后的参数值:main()_*: p: %d /n", *p); 

   

   /*printf("%d", *p);             

    int a = 5;

    int &n = a;

    printf("main(): get(n): %d /n", get(n));

    */

    return 0;

}

 

 

结果:

liuna@benz> a.out

值调用之前的参数初试值 : p: 10 

get_int: x: 100 

值调用,返回值:main()_int_return: p: 100 

值调用之后的参数值:main()_int: p: 10 

-----------------------------------------------------------

引用调用之前的初试值 : p: 10 

get()_&: x: 100 

引用调用,返回值:main()_&_return : p: 100 

引用调用之后的参数值:main()_&: p: 100 

-----------------------------------------------------------

指针调用之前的初试值 : p: 100 

get_*: x: 10000 

指针调用,返回值:main()_*_return: p: 10000 

指针调用之后的参数值:main()_*: p: 10000 

抱歉!评论已关闭.