当前位置: 首页 > news >正文

四川省住房和城乡建设局网站首页网络公司网站

四川省住房和城乡建设局网站首页,网络公司网站,购物商城类app开发,七牛镜像存储 wordpress 插件简单不先于复杂#xff0c;而是在复杂之后。 目录 1. 指针是什么#xff1f; 2. 指针和指针类型 2.1 指针-整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 3.2 如何规避野指针 1. 指针是什么#xff1f; 指针理解的两个要点#xff1a; 1. 指针是内存中最小…简单不先于复杂而是在复杂之后。 目录 1. 指针是什么 2. 指针和指针类型  2.1  指针-整数 2.2 指针的解引用  3. 野指针  3.1 野指针成因  3.2 如何规避野指针  1. 指针是什么 指针理解的两个要点 1. 指针是内存中最小单元的编号也就是地址。 2. 平时口语中说的指针通常指的是指针变量是用来存放内存地址的变量。 总结指针就是地址口语中说的指针通常是指针变量。   int main() { int a 10;//a是整型变量占用4个字节的内存空间 int* pa a;//pa是一个指针变量用来存放地址的 //取地址时取的是第一个字节的地址return 0; } 总结 指针变量用来存放地址的变量。存放在指针中的值都被当成地址处理。 一个小的内存单元多大             ---1byte 如何编址经过仔细的计算和权衡我们发现一个字节给一个对应的地址是比较合适的。 对于32位的机器假设有32根地址线那么假设每根地址线在寻址的时候产生高电平高电压和低电平低电压就是1或者0 那么32根地址线产生的地址就会是 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 ... 11111111 11111111 11111111 11111111  总结 1. 指针是用来存放地址的地址是唯一标识一块地址空间的。 2. 指针的大小在32位平台是4个字节在64位平台是8个字节。   C语言的%zu是用来格式化输出size_t类型数据的格式控制符。 size_t是C标准库中定义的一个无符号整型类型用于表示内存空间大小和数组索引等非负整数值。在C语言中sizeof操作符用于计算指定类型或表达式的大小即占用的字节数并返回一个size_t类型的值。 需要注意的是%zu只能用于格式化输出size_t类型的值不能用于其他类型的数据。 如果把一个非size_t类型的数据使用%zu格式控制符进行输出可能会导致输出结果不正确甚至导致程序崩溃。 2. 指针和指针类型  变量有不同的类型整型、浮点型等。 指针也有类型。 当有这样的代码            结论指针类型决定了指针在被解引用的时候访问几个字节 1. 如果是int*的指针解引用访问4个字节 2. 如果是char*的指针解引用访问1个字节 在这段代码中整型指针变量pa和字符型指针变量pc所指向的地址是相同的即它们都指向变量a的内存地址。 这是因为在C语言中变量在内存中的存储方式是连续的而不同类型的指针变量只是指向这些内存地址的方式不同。 在这段代码中变量a在内存中的存储方式是以4个字节为一个单位进行存储因此它的地址是一个整型地址。 当将变量a的地址赋给整型指针变量pa时pa所指向的地址与a的地址是相同的因为它们都是整型地址。 当将变量a的地址强制转换为字符型指针类型并赋给字符型指针变量pc时pc所指向的地址也与a的地址相同这是因为强制类型转换只改变了指针变量的解释方式而并没有改变指针变量所指向的地址。 因此虽然整型指针变量和字符型指针变量的类型不同但它们所指向的地址是相同的。 2.1  指针-整数 总结指针的类型决定了指针向前或向后走一步1-1操作有多大也就是指针的步长。 2.2 指针的解引用  总结  指针的类型决定了对指针解引用的时候有多大的权限能操作几个字节。  比如char* 的指针解引用就只能访问一个字节而int* 的指针解引用就能访问四个字节。 3. 野指针  概念野指针就是指针指向的位置是不可知的随机的不正确的没有明确限制的。  3.1 野指针成因  1. 指针未初始化 int main() { int* p;//没有初始化就意味着没有明确的指向 //一个局部变量不初始化的话放的是随机值0xcccccccc*p 10;//非法访问内存这里的p就是野指针return 0; }  2. 指针越界访问 int main() { int arr[10] { 0 }; int* p arr;//arr[0] int i 0; for (i 0; i 10; i) { *p i; p; } //当指针指向的范围超出数组arr的范围时p就是野指针 return 0; } 3. 指针指向的空间释放动态内存开辟时讲解 int* test() { int a 10; return *a; } int main() { int*p test();return 0; } 3.2 如何规避野指针  指针初始化小心指针越界指针指向空间释放时及时置NULL 避免返回局部变量的地址指针使用之前检查有效性零地址禁止访问指针没有指向有效空间。 这段代码有一个明显的问题就是在函数test()中声明的变量a是一个局部变量在函数执行完毕后将被销毁。 因此返回该变量的地址是不安全的因为该地址将指向一块已经被销毁的内存。 这将导致指针变量p所指向的地址变成了一个野指针可能会引发不可预测的错误这是一种非常危险的行为。 如果想要正确地使用返回指针可以考虑使用动态内存分配函数malloc()来分配一块内存并将变量的值存储在该内存块中然后返回该内存块的地址。 动态内存分配在之后的博客会有所体现。 这样可以确保返回的地址始终有效并且可以安全地使用指针变量。   int main() { int a 0; int* p a; *p 20; //null - 0int* p2 NULL; *p2 100;//errint* p3 NULL;if (p3 ! NULL) { *p3 100;//ok }return 0; }
http://www.hkea.cn/news/14427910/

相关文章:

  • 专门做试卷的网站深圳自助体检机地址
  • 朝阳网站推广ftp 如何 更新 wordpress
  • 做个网站应该怎么做提高工作效率的方法有哪些
  • 卖房网站母亲节做什麽活动wordpress读取文件内容
  • 站长工具传媒莱芜金点子招工招聘
  • asp成品网站电商网站推广方法
  • 网站可以做二维码吗东莞网站域名注册
  • 微信电脑版网站做优化多少钱
  • 网站建设费用高做淘客网站备案
  • 网站空间到期了怎么办网页设计与制作section什么意思
  • 网站建设昆山博敏平原网站建设电话
  • 《网站建设》期末考试小视频制作软件
  • 旅游网站静态模版下载wordpress 内容页插件
  • 国外网站都不能上怎么做跨境电商便宜建站空间
  • 网站搜索引擎怎样做sae wordpress插件安装
  • 怎么看网站是否织梦青岛网络推广服务
  • 网站后台发邮件wordpress插件中文网
  • 专门做cos的网站wordpress腾讯cos插件
  • 罗湖做网站报价做竹鼠网站
  • 2015做网站前景定制商品的app
  • 如何做网站同步别人的商城怎么自己做微网站
  • 建网站可以铺货诚信的小程序开发兼职网站
  • 企业网站建设套餐 网络服务简述影响关键词优化的因素
  • 做网站用的产品展示横幅外国做动漫图片的网站叫什么
  • 没有主机怎么做自己的网站莱芜网站优化加徽信xiala5
  • 如何对网站管理简单电商网站模板
  • 模块式网站制作建议自考还是成考
  • 淘客怎么用网站做wordpress 用的什么框架
  • 一级a做爰片就在线手机看韩国网站某网站建设方案
  • 成都网站建设哪个好手机版网站设计案例