C语言——指针,指针变量,野指针

一. 指针与指针变量

1.什么是指针?

计算机会给每个变量都分配其特定的存储空间,每个存储空间的地址就是指针(例如 你到菜鸟去取快递,你手中的取件码就相当于指针,通过它你就能找到你的快递了)

2.指针变量是什么?

指针变量,它首先是一个变量,其次它与整型,浮点型等变量一样都用来存放数据。
例如:存放整数的变量是整型变量,那么存放地址(指针)的变量就是指针变量。

注意要区分指针与指针变量:

1.指针是地址。
2.指针变量用来存放地址(指针),指针变量的值是地址(指针)
3.其实我们通常写代码用的和口头上说的指针都指的是指针变量

二. 指针变量

在学会使用指针变量前,首先要知道几个符号的作用

(1)& 取地址符。&a 代表变量 a 的地址
(2)* 指针运算符。有两个作用:1. 表示指针型 2.表示指向
(3)%p 指针格式控制符;

1.定义指针变量

1.定义指针变量的一般形式为:

                     类型名 *指针变量名

2.指针类型
因为不同类型变量,在内存中所占的字节数和存放方式是不同的,因此指向这些变量的指针类型也不同。

例如:定义两个指针变量a1,a2

int c=100,d=200;
int*a1=&c,*a2=&d;

注意:

  1. 在定义指针变量时 指针运算符* 仅表示变量a1,a2是指针型变量,指针变量名是a1,a2;
  2. 在定义一个指针变量时,一定要给出指针变量所指变量的类型,同时对它初始化(不然指针将会变为野指针);

2.引用指针变量

引用指针变量的基本方法,就是给指针加上指针运算符*,下面用代码举例说明:

#include <stdio.h>

int main()
{
	int a=1,b=2,*pa,*pb;
	pa=&a;
	pb=&b;
	*pb=1;//将整数值赋给指针指向元素 
	printf("%p\n",pa);
	printf("%d\n",*pa);//输出指针指向整型变量 
	printf("%d\n",*pb);
	
}

在这里插入图片描述

野指针

概念:指针指向的位置不可知(随机的,不正确的,没有明确限制的)
原因:1.指针未初始化,2.指针访问越界,3.指针指向的空间释放了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值