A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 红凉梦 中级黑马   /  2016-1-21 12:31  /  660 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针做函数参数的本质.
1>普通参数---是值传递
#include <stdio.h>
int text(int x);
int main()
{
   
    int a = 10;
    int c = text(a);
    printf("c===%d---a=====%d\n",c,a);
    return 0;
}

int text(int x)
{
//    int x = a;
    return x+10+10000;
}


2>指针做参数----仍然是值传递 只是这个值是一个地址

#include <stdio.h>
int text(int *x);
int main()
{
   
    int a = 10;
    printf("~~~~~%p----\n",&a);
    int c = text(&a);
    printf("c===%d---a=====%d\n",c,a);
    return 0;
}

int text(int *x)
{
    //int *x = &a;
    printf("%p----\n",&x);//函数中开辟的指针变量自己的地址
    printf("~~~~~~%p----\n",x);//函数中开辟的指针变量指向的空间的地址(&a)
    *x = *x +10;
    return *x;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马