C语言指针

  • C语言中的指针是指 一类 数据类型:int指针类型,double指针类型,char指针类型等等。
  • 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。

指针变量声明

定义:

type *var-name;
//类型 * 变量名;

不论数据类型,指针的值的类型都是一样的,都是一个代表内存地址的长的十六进制数。

*号标识该变量为指针类型,当定义多个指针变量时,在每个指针变量名前面均需要加一个 *,不能省略,否则为非指针变量。
例如:

int    *p;    // 一个整型的指针 
double *p,*q;    // 两个 double 型的指针 
float  *p,,q;    // 一个浮点型的指针,一个浮点变量q
char   *p;    // 一个字符型的指针 

初始化

int a,*p=&a; 

解释:a在定义时就已经被分配地址了所以这样写没错

int a,*p; 
p = &a;

解释:&a为地址,等价指针p,所以是同类型,可以这样赋值


指针;变量;地址的关系

在这里插入图片描述在这里插入图片描述

总结:

  • p为指针,存放a的地址,即指向a这个变量
  • *p为指针所指地址内的内容,即a的值
  • a为变量,即为a的值
  • &a为地址,等价指针p

注意:

  • 在使用已定义好的指针变量时,在变量名前面不能加 *
int *p,a;
*p=&a; //错误,指针变量是p而不是*p
int a,*p=&a; //正确
  • 解释: p 前的 * 仅是定义指针变量 p 的标识,仍然是把 &a 赋给了 p,故是正确的赋值语句。

“野”指针

“野”指针:没有合法指向的指针,指向的地址未知!

int *pi,a; //pi未初始化,无合法指向,为“野”指针
*pi=3 //运行时错误!
a=*pi; //运行时错误!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值