指针基础知识(含思维导图)

C语言中指针
在这里插入图片描述
一、指针的定义及大小
①指针是指地址(地址是常量);此处的地址指计算机存储设备中对于内存单元的编码(相当于门牌号);
②指针大小:4字节或8字节;32位平台是4字节;64位平台是8字节;
二、使用指针的目的
目的:通过指针去访问内存单元;目的是不看起来很简单?虽然目的很简单,但是请注意使用指针的方法(划重点哦);
三、指针变量
①定义:存放变量地址的变量(是不是看着很绕口?);

int main()
{
	int x;//创建变量
	int *p=&x;//此刻的p就是指针变量
	//p是创建的变量,它的类型是int型指针,然后将变量x的地址赋值给p;
	return 0;
}

②引用操作:

#include<stdio.h>
int main()
{
	int x = 0;
	int *p = &x;
	*p = 10;// *p指解引用操作;通过p存储的地址找到x并且赋值10;
	//以上就是指针的简单应用;
	return 0;
}

四、指针类型
首先说明:指针类型决定了指针访问内存单元时的字节数;
①常用整型指针:
在这里插入图片描述
②常用浮点型指针:
在这里插入图片描述
③常用构造类型指针:

struct stu
{
	char name[20];
	int age;
};

int main()
{
	int *arr[10];//指针数组
	int (*arr)[10];//数组指针
	
	struct stu *p;//结构体指针变量
	return 0;
}

④函数指针:
定义:通过调用函数指针间接访问某函数;

函数类型 (*指针名字) (函数参数);
函数类型指原函数的类型、函数参数也是原函数参数;原函数无参数直接()如果有参则(int, int)
例如函数指针:void (*p)(int, int);

五、NULL指针
NULL指针定义:*#define NULL ( (void )0)
它作为一个特殊的指针变量,表示不指向任何东西。
使用:在你定义指针的时候不知道赋什么值,此时应该赋NULL。

六、指针相减

int main()
{
	int a = 10, b = 6;
	int *ptr = &a;
	int *p = &b;
	//p-ptr是p指针和ptr指针之间的元素个数,下图中p-ptr为5;
	return 0;
}

在这里插入图片描述
七、二级指针
二级指针就是一级指针的指针;

#include <stdio.h>
int main()
{
	int a = 10;
	int *p = &a;
	int **pp=&p;
	//二级指针就是存储一级指针的地址,
	//通过二级指针访问一级指针及它所指向的值;
	printf("%d",**pp);//*pp获得一级指针的值
					  //再通过一个解引用找到一级指针所指向的值
	return 0;
}

这是基础篇,下篇介绍进阶内容;
希望大家三连哦;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值