C 语言指针

Posted x404

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
",x,y);//这是普通的输出
chang(&x,&y); //函数传递的是x和y的地址而不是它的值,这就意味着chang函数原型声明中形参q,p将使用地址作为它们的值,因此,它们应该声明为指针。所以有之前的声明
printf("x1=%d y1=%d
",x,y);
renturn 0;
}
void chang(int *p,int *q){
int temp;
temp=*p;
*p=*q;
*q=temp;
}
/*
在函数交换时,首先函数使用x和y进行交换,使它可以访问x,y变量,通过指针和运算符* ,函数可以获得相应存储地址的数据,从而就可以改变这些数据,

*/

运行结果:

技术图片

 

以上是关于C 语言指针的主要内容,如果未能解决你的问题,请参考以下文章

C语言代码片段

更新:C++ 指针片段

c语言中如何通过二级指针来操作二维数组

初学c语言指针问题

C语言判定指针类型

C 语言行指针与列指针详解