首页 > 其他分享 >12-指针02

12-指针02

时间:2023-03-24 23:57:04浏览次数:38  
标签:02 初始化 12 指向 include 地址 NULL 指针

指针

1.野指针

野指针的指向的地址是随机的,不能操作野指针
指针指向的地址是系统分配的,定义变量的时候向系统申请,系统进行分配
指针初始化的地址不能由自己给出

#include <stdio.h>
#include <stdLib.h>
#include <string.h>

int main()
{
	
	// 野指针是指没有初始化(赋值)的指针
	
	int *p; // 定义一个指针变量p   
	// *p 指向的是指针变量存储的地址对应的空间
	// 指针变量p没有存储地址,所以p中存储的地址是随机的(指针的指向是随机的)
	// 将这样没有初始化的指针称之为野指针
	*p = 200;
	
	system("pause");
	return 0;
}

2.零指针

  • int *p = NULL -- 表明定义了一个指针,并将其初始化为NULL,就是指向0所在的地址0x0000 0000;
  • 零指针初始化所指向的位置不用于存储其他的地址,只是表明该指针进行了初始化,可以进行使用的标志
  • 习惯:将指针使用完之后,置为NULL,这样在使用指针的时候,判断指针指向为NULL,那么该指针可以进行使用,如果该指针不为NULL,表明该指针不能使用(该指针未初始化或者正在使用)

#include <stdio.h>
#include <stdLib.h>
#include <string.h>

int main()
{	
	// 定义一个整型变量,如果不知道存储什么值,可以将a初始化为0
	int a = 0;
	// 定义一个指针变量p,如果不知道指针存储谁的地址可以将其
	// 初始化为0指针,将指针指向0地址,0x00000000 -- NULL
	int *p = NULL;
	
	// *p = 200; // 也不对,p保存了0x000000000,0x00000000是进行初始化的标记,该地址指向的空间不存储值
	
	// NULL是指针初始化的标记,指针p指向NULL,表示该指针初始化了,该指针可以使用,
	// 如果指针 p !== NULL 表明该指针没有初始化,不能使用(或者该指针指向其他地址空间)
	// 好习惯:将指针用完之后将指针变量指向NULL
	if(p == NULL)  
	{
		p = &a;
	}
	system("pause");
	return 0;
}

3. 万能指针

  • 可以保存任何地址的指针

#include <stdio.h>
#include <stdLib.h>
#include <string.h>

int main()
{	
	
	// 万能指针,可以保存任意的地址
	void *p;
	
	system("pause");
	return 0;
}

标签:02,初始化,12,指向,include,地址,NULL,指针
From: https://www.cnblogs.com/Icer-newer/p/17253711.html

相关文章

  • 2023、03、24学习总结
    写了第一个查询,用同样的方法写第二个线路查询出现问题,无法正常查询,明天在找问题  ......
  • 总结20230324
    今日是周五,虽然课最多,但是还是很喜欢今天的,因为明天又迎接来了双休。今天上了计算机网络、概率论、实用英语阅读与翻译、web应用开发技术、数学建模B。计算机网络今天进......
  • 2023-03-25 AVL平衡树
    AVL平衡树1什么是AVL平衡树AVL是两个人的人名Adelson-Velsky和Landis,两个人都是俄罗斯人,是两人在1962年的论文中首次提出,是最早的自平衡二分搜索树什么是平衡二叉树......
  • 2023.3.24
    整理一点位运算相关:对于数字k:1.第i位是几:k<<i&12.lowbit返回最低位的1的位置:实现1:k&-k//一个数的负数是其补码,即原数取反加一,本句等价于k=(......
  • java学习日记20230325-抽象类
    抽象类:当父类的某些方法需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类!所谓抽象方法,就是没有实现的方法;当一个类中存在抽象方法时,需要将......
  • day24 (2023.3.24)
    1.数据流DataInputStream和DataOutputStream 运行结果: 2.对象流ObjectInputStream和ObjectOutputStream 运行结果: 3.将对象序列化到文件  运行......
  • 专业视频编辑软件会声会影(Corel VideoStudio)2023新功能介绍
    会声会影(CorelVideoStudio)2023为加拿大Corel公司发布的一款功能丰富的视频编辑软件。会声会影2023简单易用,具有史无前例的强大功能,拖放式标题、转场、覆叠和滤镜,色彩分级、......
  • 会声会影2023专业旗舰版新功能介绍
    会声会影(CorelVideoStudio)2023为加拿大Corel公司发布的一款功能丰富的视频编辑软件。会声会影2023简单易用,具有史无前例的强大功能,拖放式标题、转场、覆叠和滤镜,色彩分级、......
  • 每日总结2023-03-24
    今天进行了北京地铁线路的导入数据库,进行了代码优化更改,进行了北京地铁的查询。我的搭档完成了地图的设置。下面是演示:  代码量大概100行。......
  • java学习日记20230324-final关键字
    final可以修饰类,方法,属性和局部变量当不希望类被继承时,用final修饰类当不希望父类某个方法被子类重写时,使用final当不希望某个属性值被修改时当不希望某个局部变量被......