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

C语言行地址列地址区别,内存的分配

开辟了10个字节的空间在栈中     "abc"常量在代码段

char a[10]="abc";

p:8个字节存"abc"的地址                "abc"常量在代码段中

char *p="abc"

char *q="abc"              p,q的值是一样的 到代码段中找"abc"直接取地址

//                                                                        8                        3

printf("%lu   %lu\n",sizeof(p),strlen(p));   p自己占的空间--------p所指向的空间

printf("%lu  %lu\n",sizeof(a),strlen(a)); a所占的字节数和他所存的东西没有关系(由a后面的[]数字决定)-----  a所指向的空间

*a=‘x’;  可以的  a是栈中开辟的10个空间,把("abc")从代码段中拷贝了一份在栈空间中

                *a赋值是在栈中改变,不是改变("abc")本身

*p=‘x’;error     *p是("abc")中的a,字符串在代码段中是个常量,不能改

                        p存的("abc")地址,*p取的是a的值 ,会发生段错误

进程映像:从上到下,低地址到高地址

                    代码段

                    数据段

                    静态数据段

                     堆空间

                     栈空间

                      环境变量表

                      命令行参数               

测试2.

结果如下:a在栈区  &p在栈区   p在代码段(因为他存的是"abc"的地址)

http://www.lryc.cn/news/431105.html

相关文章:

  • Unity 一键修改图片缩放保存为当前的一半大小
  • Identifying User Goals from UI Trajectories论文学习
  • [STM32]从零开始的STM32标准库环境搭建(小白向)
  • 解决 Android 上的 .NET MAUI/Xamarin.AndroidX 应用调用 ASP.NET Core API 端点时 SSL 连接被拒绝的问题
  • 助贷CRM系统:为金融中介行业打造全新营销管理模式
  • HBase 部署及shell操作
  • 使用Fign进行客户端远程调用和SpringFormEncoder的使用
  • golang 数据库使用注意事项
  • Leetcode面试经典150题-221.最大正方形
  • 51单片机-DS1302,操作简述
  • Vue3+Vite+Echarts 出现Missing semicolon错误
  • iOS——frame和bounds的区别
  • Trm理论 3(注意力机制)
  • Vue2和Vue3项目创建的区别和 element ui 和element plus的导入方式
  • 基于STM32的猫狗宠物喂养系统设计(微信小程序)(215)
  • spark读取csv文件
  • 钢铁百科:Q420DR力学性能、Q420DR执行标准、Q420DR低温容器钢板
  • 三菱机器人手柄维修示教器维修手操器面板等
  • 中间件的学习理解总结
  • 编程秘密武器:提升工作效率的关键工具
  • Git+word记笔记
  • java-antrl手敲命令的hello world
  • 法规探讨 | 《医疗器械管理法(草案征求意见稿)》初探(1)
  • 大语言模型的上下文窗口(Context Windows):对人工智能应用的影响
  • Java【数组】
  • xAI巨无霸超级计算机上线:10万张H100 GPU,计划翻倍至20万张
  • python集合
  • 算法打卡 Day29(回溯算法)-复原 IP 地址 + 子集 + 子集 Ⅱ
  • LeetCode 热题100-17 缺失的第一个正数
  • 基于CloudflareSpeedTest项目实现git clone加速