零基础搞懂C语言指针

到底什么是指针?

C语言中把专门存放变量地址的变量“指针变量”,简称指针。
什么这样说你不明白???

地址内存单元变量
100020x
10021y
1004115z
20001000p

其中变量x的内存单元的地址为1000,而变量p的值是变量x的内存单元的地址所以称p为指针变量简称指针。

如何定义一个指针(指针变量)?

前边我们已经学过
变量的定义
类型名 变量名;例如:int a;double b;

那么怎么把指针变量和他们区别开呢?
这是我们就不得不提出指针声明符 *,当定义变量时出现指针声明符,说明那个被定义的变量是指针

  • 注意:指针声明符并不是指针的组成部分,即int *p; p是指针变量而不是*p

指针变量的定义:
类型名 *指针变量名;

  • 注意:类型名是指针所指向的变量的类型,
    int a; int *p;

  • 跟普通变量一样,指针变量也必须先初始化再引用

指针变量的初始化又有那些注意要点?

  • 把一个变量的地址作为初始化值赋值给指针变量时,该变量必须已经定义;

错误

int *p=a;
int a;

正确

int a;
int *p=&a
  • 在定义或初始化时,变量名前面的*只表示该变量是指针变量,而不是间接访问符
int a=5;
int *p=&a;//初始化语句
*P=6;

第一个*和第二个*是不同的,第一个是指针说明符,第二个是间接运算符

  • 不能用数值作为指针变量的初值
 int *p=1000;错误
 int *p=0; 正确//这里是把指针变量初始化为空指针,0是ASCII字符NULL得值;

上面提到了简介访问符,下面介绍一下指针的基本运算

指针的基本运算有哪些呢?

  • 取地址运算
    指针变量的值是一个地址,把它所指向的变量进行取地址运算就是指针的值
  • 间接访问运算
    *p是把变量p的值作为地址访问其内存单元
int a=10;
int *P=&a;

此时*pa的值都是10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值