标签:传递 函数 交换 一个 mic 命名 passwd 代码 inf
指针究竟是什么呢?
指针是一个指针为地址的变量正如char类型的变量用字符作为其数值,而Int类型变量的数值是整数,指针变量的数值表示是地址
如果将某指针变量命名为pas,那么就可以获得一下语句:
pas=&passwd
这里是把passwd的地址赋值给pas
指针需要的符号:* &
地址运算符(&):后跟一个变量名,&给出变量的地址
例如:
&num 表示变量num的地址
间接运算符(*):这里先说一下这里不表示*二元运算的*(乘法),当后面跟一个指针名或地址时,*给出存储在被指向地址中的数值
例如:
num=2;
pas=#//pas指向num的指针
vps=*pas;//将pas指向的值赋给vps
上面的语句是将2赋值给vps
指针声明:
int *pi ; //pi是一个指向整数变量的指针
char *p; //p是一个指向字符变量的指针
float *p,*g;//p和g都是指向浮点 变量的指针
总结:类型标识符表明了被指向变量的类型,而星号(*)是表示变量为指针
声明Int * pi;的意思是pi是一个指针,而*pi是int类型的
接下来写一段代码看看效果
#include<stdio.h> void chang(int *p ,int *q);//声明指针 int main(void){ int x=5,y=15; printf("x=%d y=%d\n",x,y);//这是普通的输出 chang(&x,&y); //函数传递的是x和y的地址而不是它的值,这就意味着chang函数原型声明中形参q,p将使用地址作为它们的值,因此,它们应该声明为指针。所以有之前的声明 printf("x1=%d y1=%d\n",x,y); renturn 0; } void chang(int *p,int *q){ int temp; temp=*p; *p=*q; *q=temp; } /* 在函数交换时,首先函数使用x和y进行交换,使它可以访问x,y变量,通过指针和运算符* ,函数可以获得相应存储地址的数据,从而就可以改变这些数据, */
运行结果:
标签:传递 函数 交换 一个 mic 命名 passwd 代码 inf
原文地址:https://www.cnblogs.com/X404/p/12078062.html