码迷,mamicode.com
首页 > 编程语言 > 详细

C 语言指针

时间:2019-12-27 11:55:06      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:传递   函数   交换   一个   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变量,通过指针和运算符* ,函数可以获得相应存储地址的数据,从而就可以改变这些数据,

*/

运行结果:

技术图片

 

C 语言指针

标签:传递   函数   交换   一个   mic   命名   passwd   代码   inf   

原文地址:https://www.cnblogs.com/X404/p/12078062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!