源码:

#include <stdio.h>
const char* p0 = "0";
void show();
void show()
{const char* p3 = "0";printf("p3: %p\n", (int*)p3);
}
int main()
{char s[] = "1";const char * p1 = "1";const char* p2 = "2";printf("s: %p\n" , s);printf("p0: %p\n" , (int*)p0);printf("p1: %p\n" , (int*)p1);printf("p2: %p\n" , (int*)p2);show();static int p4 = 1;printf("i: %p4\n", &p4);return 0;
}

结果:

s: 0xff92f21a
p0: 0x80485d0
p1: 0x80485da
p2: 0x80485dc
p3: 0x80485d0
i: 0x804a0244

有以下结论:

1.

函数中的const char* p = "1";

"1\0"在.text区域,p在栈

2.

全局变量const char* p = "1";

"1\0"在.text区域,p在.data区域

3.

函数中的char s[] = "1234";

s在栈区域,且被填充为1234\0

4.

全局变量中 char s[] = "123";

s在.data,且被填充为123\0

char* p = 123,字符串在内存中的哪个位置?相关推荐

  1. c语言字母存储,字符串在内存中的储存——C语言进阶

    字符串在内存中的存储--C语言进阶 字符串是以ASCII字符NUL结尾的字符序列.ASCII字符NUL表示为\0.字符串通常存储在数组或者从堆上分配的内存中.不过,并非所有的字符数组都是字符串,字符数 ...

  2. A13在c语言中是合法变量吗,C语言中局部变量和全局变量等在内存中的存放位置.doc-资源下载在线文库www.lddoc.cn...

    C语言中局部变量和全局变量_等在内存中的存放位置.doc C 语言中局部变量和全局变量 变量的存储类别static,extern,auto,register 8.8 局部变量和全局变量在讨论函数的形参 ...

  3. Java 类中各成分加载顺序和内存中的存放位置

    一.什么时候会加载类? 使用到类中的内容时加载:有三种情况 1.创建对象:new StaticCode(); 2.使用类中的静态成员:StaticCode.num=9; StaticCode.show ...

  4. java python 运行 内存_Python C Java中字符串在内存中的存储

    Python 昨天在讲Python的过程中,发现了一个小问题,当时课上没有解决,下面特意查阅资料解决了一下. a = "123" b = "123" print ...

  5. 字符串在内存中的存储——C语言进阶

    字符串是以ASCII字符NUL结尾的字符序列. ASCII字符NUL表示为\0.字符串通常存储在数组或者从堆上分配的内存中.只是,并不是全部的字符数组都是字符串,字符数组可能没有NUL字符. 字符数组 ...

  6. oracle 截取字符串中指定位置_手撕虚拟内存(1)——字符串在虚拟内存中的段位置与/proc虚拟文件系统...

    原文:Hack The Virtual Memory: C strings & /proc - Holberton 翻译:RobotCode俱乐部 介绍 这是一系列关于虚拟内存的小文章/教程中 ...

  7. 什么是共享内存?在内存中的具体位置?shmget的具体使用原理以及其他关联函数(shmat ( ),shmdt ( ),shmctl ( ))、以及C++应用案例?mmap和shm的区别?

    共享内存(shared memory) 共享内存 1.背景 2.定义 3.两种方式(mmap上一篇博客说明) 3.2.shmget 3.2.1.使用流程和基本原理 3.2.2.函数原型(创建共享内存) ...

  8. 什么是共享内存?在内存中的具体位置?共享内存相关API,mmap 的具体使用原理、以及C++应用案例?

    共享内存(shared memory) 共享内存 1.背景 2.定义 3.两种方式(shmget下一篇博客说明) 3.1.mmap 3.1.1.调用过程 3.1.2.优点总结 3.1.3.API函数( ...

  9. 字符串常量在内存中的存放位置由系统自动安排。_C++核心编程--内存分区模型...

    1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的 ...

最新文章

  1. strtok和strtok_r
  2. 【Linux】 字符串和文本处理工具 grep sed awk
  3. oracle学习-存储过程返回一个值,和返回一个结果集
  4. 测试博客园Markdown 表格
  5. 消除warning方法
  6. javascript中变量的判断
  7. 聊聊Batch Normalization在网络结构中的位置
  8. 查漏补缺方为上策!!两万六字总结vue的基本使用和高级特性,周边插件vuex和vue-router任你挑选
  9. dp 树状数组 逆序元组
  10. java技术论坛的毕业设计_基于java的bbs论坛设计,软件毕业设计
  11. 【转】windows多线程CreateThread与_beginthreadex本质区别
  12. A股开盘:深证区块链50指数涨0.02%,仁东控股跌停
  13. 程序员如何玩转汇编指令?
  14. 内部排序算法:堆排序
  15. android studio接口在哪设置,Android定位SDK
  16. python pyhook_python使用pyHook.HookManager()返回来的event中,event.Time怎么转换成为datetime形式?...
  17. Application Virtualization 4.5 部署【3】
  18. VMware esxi6.7U3B安装镜像集成Realtek8168网卡驱动
  19. 2010年中国十大网络电视排行榜(转)
  20. 便携式三星mysql_三星折叠手机终于来了!9 月 18 日正式发售

热门文章

  1. free命令输出详解
  2. [日志]保证让你一天不困的方法
  3. 回顾2018——区块链行业十大关键词
  4. Centos 7.X安装DB2 10.5
  5. 笔记react router 4(三)
  6. weexapp 开发流程(一)开发环境配置
  7. Linux常用的基本命令01
  8. 使用SAE和Gitcafe开发网站应用
  9. FTP服务器之vsftp
  10. Node.js 0.8.21 稳定版发布