栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

31天C语言——9,野指针,空指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

31天C语言——9,野指针,空指针

文章目录
  • 1,未初始化的指针
  • 2,操作数组,指针超过了数组长度
  • 3,指针存在,数据却已经离开
  • 4,空指针

1,未初始化的指针

创建一个指针,但没有赋值。

#include 

int main() {
	int *a;
	*a = 3;
	return 0;
}

效果:编译器会报错。

2,操作数组,指针超过了数组长度

指针,但是越界了。
长度为3,却操作了第五个地址。

#include 

int main() {
	int a[] = {1, 2, 3};
	int *b = a;
	*(b + 4) = 6;
	printf("%dn", *(b + 4));
	return 0;
}

效果:报错。

3,指针存在,数据却已经离开
#include 

int *abc() {
	int a = 3;
	return &a;
}

int main() {
	int *a = abc();
	*a = 4;
	printf("%dn", *a);
	return 0;
}

效果:报错。

4,空指针

可以给指针赋值NULL,代表空指针。

#include 

int main() {
	int *a = NULL;
	printf("%dn", a == NULL);

	int b = 3;
	a = &b;
	printf("%dn", a == NULL);
	return 0;
}

效果:
一开始是NULL,赋值之后,不再是NULL。


赋值空,判空,都是比较常用的做法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号