重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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 );
}
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;
指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。
调用就是用函数名,还要传送相应的调用参数。
#include stdio.h
void exe(int** p, int** q);
void main()
{
int *p, *q, a, b;
scanf("%d %d", a, b);
p = a;
q = b;
if (a b)
{
exe(p, q);
}
printf("a=%d,b=%d\n", a, b);
printf("max=%d,min=%d\n", *p, *q);
}
void exe(int** p, int** q)
{
int* t;
t = *p;
*p = *q;
*q = t;
}