C 语言指针

指针究竟是什么呢?

指针是一个指针为地址的变量正如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变量,通过指针和运算符* ,函数可以获得相应存储地址的数据,从而就可以改变这些数据,

*/

运行结果:

 

posted @ 2019-12-27 10:41  云小道  阅读(169)  评论(0编辑  收藏  举报