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.指针未初始化案例:3.指针越界访问案例:#include
int main() { 1.局部变量不初始化 int* p;//p是一个局部的指针变量,局部变量不初始化的话,默认是随机值 *p = 20;//非法访问内存了,这里的p被称为野指针 return 0; } #include
int main() { int arr[10] = { 0 }; int* p = arr; int i = 0; for (i = 0; i<= 10; i++) { *p = i; i++; } } 当for循环,循环到10的时候,实际上是访问到了第十一个空间去了,而这第十一个空间不属于你申请的空间,所以不属于你,这时的这个指针便是野指针了。
4.指针指向的空间释放案例:#include
int* test() { int a = 10; return &a; } int main() { int* p = test(); *p = 20; return 0; } 原本a申请了一块空间,然后由于生命周期的结束该空间被释放掉了,此时再想使用这块空间的指针还记录的是刚刚空间的地址,但是那块空间已经被释放了,已经不属于你了,再存入数据就会出现问题了,被看作野指针。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前题目:c语言——指针初阶(1)-创新互联
本文来源:http://scyanting.com/article/dgicdi.html