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

char *p = abcdefg; p[0] = p[1]出错

参考:http://blog.sina.com.cn/s/blog_5c0172280100ut4o.html

1、char *s="abc";

     看这个赋值:

     右边,是"abc",是个字符串常量,存在于内存某处(我的机器上是ds:0x0046f034),程序员不知道,编译器安排的,也没必要知道(当然,这个赋值之后,程序员就知道并能控制这个串了)。字符串常量所在内存是只读的

     左边,字符指针s,赋值时候,把地址ds:0x0046f034的偏移地址("abc"所在),存放到指针变量s(其地址为 ds:0x0046f034)中。程序员能完全控制的内存只是指针变量所占据的这四个字节内存,只能改变该指针的指向,至于其指向的内存能不能写,那就看程序了,本程序是指向的只读内存,不能写!

2、char str[]="abccd";

     再看这个赋值:

     右边,和上面类似,是"abccd",也是个字符串常量,存在于内存某处(是ds:0x0046f02c),程序员不知道,编译器安排的(这个赋值之后,程序员还是不知道这个常量在哪里,因为并没有用指针指向这块内存,这和上面不同)。该字符串常量所在内存也是只读的。

     左边,字符数组str,赋值时候,把地址ds:0x0046f02c("abccd"所在)所指内存中的内容,复制到字符数组str开始(其地址为 ds:0x0013ff74)的内存中,每复制一个字符都会开辟一个字节(char型变量占1字节)内存来存放这个字符(这也是实现了数组元素个数的动态确定)。从字符数组str开始的这部分存放这些字符的内存是程序员可以完全控制的,可读写,因此在这些内存写当然是没有问题的!

转载于:https://www.cnblogs.com/Key-Ky/p/3997541.html

相关文章:

  • CentOS项目实例之七--FTP配置
  • ssl https服务 需要 php5.3以上
  • Python-工具安装
  • SQL Server 主动防止阻塞的 1 方法
  • 烂泥:Windows下安装与配置Nginx web服务器
  • Asp.Net+Extjs实现登录
  • 文通移动文字识别采集终端(身份证识别,驾驶证识别,行驶证识别,护照识别,车牌识别)...
  • isFinite()
  • 线性判别分析LDA详解
  • Oracle RAC的日志体系
  • C# Distinct方法的使用笔记
  • Linux远程桌面
  • Java Se : Java NIO(服务端)与BIO(客户端)通信
  • 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究...
  • SQL Server 2014 官方培训课件
  • 分享的文章《人生如棋》
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Android Volley源码解析
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS魔法堂:Absolute Positioning就这个样
  • django开发-定时任务的使用
  • dva中组件的懒加载
  • Javascript Math对象和Date对象常用方法详解
  • k8s如何管理Pod
  • MySQL QA
  • Node 版本管理
  • php ci框架整合银盛支付
  • webpack入门学习手记(二)
  • 从零开始学习部署
  • 第十八天-企业应用架构模式-基本模式
  • 关于for循环的简单归纳
  • 基于组件的设计工作流与界面抽象
  • 开源地图数据可视化库——mapnik
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 06-01 点餐小程序前台界面搭建
  • MyCAT水平分库
  • Nginx实现动静分离
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​Spring Boot 分片上传文件
  • #13 yum、编译安装与sed命令的使用
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十一)c52学习之旅-动态数码管
  • (一)kafka实战——kafka源码编译启动
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***测试-HTTP方法
  • .Net Web窗口页属性
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • @31省区市高考时间表来了,祝考试成功