c语言地址作函数参数 C语言地址值

C语言指针变量的赋值和做函数的参数

1、指针变量的赋值,分为定义时赋值(初始化)和单独赋值,如:

站在用户的角度思考问题,与客户深入沟通,找到萝北网站设计与萝北网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖萝北地区。

int x ;

int * px=x ; //定义时赋值,也称初始化,注意这里的*是跟随int的,即变量px是int *类型变量! 实际上的赋值语句是px=x ;

int * py ;

py=x ; //单独赋值,将py指向x

*py=10 ; //这里的*,是引用指针中的数据操作符,*跟随的变量必须是指针类型变量,否则会出错! *py就是x,这里相当于x=10;

2、指针变量作为函数的参数时,子函数可以通过指针引用实参地址中的数据,达到修改实参地址中的数据。如:

#include stdio.h

void func( int a, int b, int *pmax )

{

if ( ab ) *pmax=a;

else *pmax=b ;

}

void main()

{

int a=2,b=3,max=0;

func(a,b,max ); //这里将变量max的地址传递到子函数,子函数中通过该地址,可以修改max的值,达到子函数结束后,max能带回运算结果的效果。

printf("max=%d\n", max );

}

C语言中如何以结构体变量的地址作为函数形参,以便将指向结构体变量的指针传递给它?

C语言中,所有的变量都存储在内存中,可以通过运算符获得变量的内存地址,函数调用时,只需要把普通变量前加上符号,就可以达到传递变量地址的目的。

例如:

定义一个结构体类型

struct Yearmonthday

int year, month, day;

};

定义相关函数,参数类型指定为结构体类型指针

void input(struct Yearmonthday *p1) //函数形参p1是结构体指针类型

{

printf("请输入年,月,日:");

scanf("%d,%d,%d",p1-year,p1-month,p1-day);

}

在主函数中定义一个结构体变量,调用相关函数,传递变量地址

int main()

struct Yearmonthday ymd;

input(ymd); //传递变量地址,以便带回数据

printf("date=%d/%d/%d\n", ymd.year, ymd.month, ymd.day ); //输出结果

return 0;

}

C语言的指针作函数参数

改成下面代码看看:

#include stdio.h

void abc(int *i,int *j)

{

int m;

m=*i; //指针变量的值也就是地址不能赋值给一般变量

*i=*j;//*i,*j才是指针变量指向的变量的值

*j=m;   

}

void main()

{

int a,b;

int *pa=a,*pb=b;

printf("请输入a,b的值:");

scanf("%d,%d",a,b);

abc(pa,pb);  //

printf("a=%d\tb=%d\n",a,b);

}


分享标题:c语言地址作函数参数 C语言地址值
URL地址:http://azwzsj.com/article/hiecje.html