c语言——指针初阶(1)-创新互联

第一次写博客,咋看咋不顺眼,还请各位大佬口下留情,我也希望能从各位的评论中学到更多的知识。

10年专注成都网站制作,企业网站制作,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站制作,高端网页制作,对成都木托盘等多个领域,拥有丰富的网站推广经验。

目录

一、指针的基本定义

1.内存 :

2.设一个指针变量,并对指针初始化:

二、指针类型

1.指针类型的意义:

三、野指针

1.野指针的定义:

2.指针未初始化案例:

3.指针越界访问案例:

4.指针指向的空间释放案例:


 一、指针的基本定义

    

1.内存 :

     

 2.设一个指针变量,并对指针初始化:
int main()
{
	int a = 0;
	int* pa = &a;
	*pa = 20;
	return 0;
}

指针大小:

在32位平台是4个字节,在64位平台是8个字节

二、指针类型

1.指针类型的意义:

 三、野指针 1.野指针的定义:

指指针的位置是不可知的(随机的,不正确的,没有明确限制的),指针未初始化,越界访问以及指针指向的空间被释放,可能导致这样。

2.指针未初始化案例:
#includeint main()
{
	1.局部变量不初始化
	int* p;//p是一个局部的指针变量,局部变量不初始化的话,默认是随机值
	*p = 20;//非法访问内存了,这里的p被称为野指针
	return 0;
}
3.指针越界访问案例:
#includeint main()
{
    int arr[10] = { 0 };
	int* p = arr;
	int i = 0;
	for (i = 0; i<= 10; i++)
	{
		*p = i;
		i++;
	}
}

当for循环,循环到10的时候,实际上是访问到了第十一个空间去了,而这第十一个空间不属于你申请的空间,所以不属于你,这时的这个指针便是野指针了。

4.指针指向的空间释放案例:
#includeint* test()
{
	int a = 10;
return &a;
}
int main()
{
	int* p = test();
	*p = 20;
	return 0;
}

原本a申请了一块空间,然后由于生命周期的结束该空间被释放掉了,此时再想使用这块空间的指针还记录的是刚刚空间的地址,但是那块空间已经被释放了,已经不属于你了,再存入数据就会出现问题了,被看作野指针。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:c语言——指针初阶(1)-创新互联
网站地址:http://ybzwz.com/article/dgicdi.html