我前段时间写的char*和char[]差额。今char*做一个更深入的了解

1:char像指针和其他指针,也定义一个地址,例如int*它定义了一个堆栈,4字节,char*之,现在写一段代码

#include<iostream>
using namespace std;
int main()
{
int a=12;
char b='67';
int *c=&a;
char *d=&b;
return 0;
}

内存分布情况:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFua2VyMjAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

我们能够看到,在这样的情况下char*表示的意思是简单的字符,这个时候,依照常理。int占用4个字节,char占用一个字节

2:假设用char*代表字符串呢。,上篇文章我大致理解,char*代表字符串存储,它作为一个指针的地址入栈,栈内存储的是指向rodata 区域段的地址,char*字符串的内容存储在rodata段内,c++的内存存储分配上,定义rodata区域是仅仅读区域。规定仅仅读区域存储的数据无法更改,仅仅能读取,依照这个思路。从新写一段代码。验证

#include<iostream>
using namespace std;
int main()
{
char *p="hello"; return 0;
}

这里,我须要知道的是p指针的地址,p的值。以及p的值是不是指向一块新的地址

首先查看了p指针栈中的字节数

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFua2VyMjAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

我查看了&p的地址:他的地址为0x0032faac。它的这块区域存储的值为:48 dd 93 00

依照解释上,p的地址的值是依照栈的存储的,它的值存储的应该是他指向的“hello”的地址才对。可是48 dd 93 00的值代表什么意思。依照栈的入栈顺序,是0x0093dd48这个地址么,是这个地址就是p指向的rodata区域的地址么。这个地址存储着“hello”么。

我试着敲击了0x0093dd48这个栈内存储的地址

发现这个内存地址存储的就是“hello”的ascii码,因为是仅仅读区域的内存。我们试着想一下它的传输机制,以及更改栈或者更改指向地址,或者更改指定地址的内容等等,看是不是错误符合自己的预先的要求,这里就不相信的解释了

版权声明:本文博主原创文章。博客,未经同意不得转载。

char *详细指针的更多相关文章

  1. char型指针与其它指针或数组的细节

    一道常见题 char * str7="abc"; char * str8="abc"; cout<<(str7==str8)<<endl ...

  2. char型指针和字符串字面量和字符数组

    1.当一个char型指针指向一个字符串字面量(也就是常量字符串)时,该指针必须由const修饰,否则,系统会给出deprecated(不赞成)的警告.原因是:字符串字面量不可改变,当它被一个非cons ...

  3. char型指针的初始化问题

    方法一:char *str = “abcd“区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y ...

  4. VS2019 字符串对指针char*赋值编译器报错原因及解决方法

    2019-05-26   21:55:08 前几天在敲代码时,将字符串“Hellow world!”赋值给指针char*类型指针时编译器报错的问题 网上搜索后发现 char*是历史遗留问题,如果程序修 ...

  5. C语言指针详解(经典,非常详细)

    前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其 ...

  6. c语言中,指针加1的情况.指针变量详细介绍

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...

  7. 让你不再害怕指针——C指针详解(经典,非常详细)

    http://blog.csdn.net/soonfly/article/details/51131141 前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理 ...

  8. 字符指针unsigned char *ch_p

    指向类型为unsigned char的指针变量叫字符指针. 例如: unsigned char ch = 'a'; unsigned char *ch_p = &ch;那么指针变量ch_p就是 ...

  9. 大牛针对零基础入门c语言详解指针(超详细)

    C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...

随机推荐

  1. wkhtmtopdf--高分辨率转HTML成PDF--目录篇

    原文:wkhtmtopdf--高分辨率转HTML成PDF--目录篇 wkhtmtopdf--高分辨率转HTML成PDF(一):简述wkhtmtopdf的简介和安装 wkhtmtopdf--高分辨率转H ...

  2. struts2文件上传限制大小问题

    struts2默认文件上传大小为2M,如需改动默认大小,解决方法例如以下: <struts> <constant name="struts.multipart.maxSiz ...

  3. hdu1428之dfs+spfa

    漫步校园 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. js快速分享代码

    这是一款简单易用的文章分享工具,您只需将下面的html代码拷贝到模板中就可以实现文章快速分享功能.如果您想分享你的博客.个人网站或者企业网站等等,下面是两款不错的分享工具,值得拥有! 1. <d ...

  5. WPF案例 (六) 动态切换UI布局

    原文:WPF案例 (六) 动态切换UI布局 这个Wpf示例对同一个界面支持以ListView或者CardView的布局方式呈现界面,使用控件ItemsControl绑定数据源,使用DataTempla ...

  6. HDU 3217 Health(状压DP)

    Problem Description Unfortunately YY gets ill, but he does not want to go to hospital. His girlfrien ...

  7. hdu1507--二分图最大匹配

    题意:你大爷.哦不! 你大叔继承了一块地什么的都是废话..,这里说说题意,和怎么建图. 题意:这里有一块N*M的地,可是有 K 个地方.是池塘,然后输入K行(x,y),OK,如今能够出售的地必须是 1 ...

  8. 一百万数据索引实例測试--mysql

    推荐书籍:http://pan.baidu.com/s/1sjJIyRV 任务描写叙述: 如果一高频查询例如以下  SELECT * FROM user WHERE area='amoy' AND s ...

  9. jQuery插件实战之fullcalendar(日历插件)Demo

    jQuery的插件许多,应用的场景也很丰富,今天我这里给大家介绍一款很有用的日历页面开发插件 - fullcalendar,眼下最新版本号是1.5.1,使用这款插件可以高速帮助你高速编程实现基于web ...

  10. 《JavaScript设计模式与开发实践》读书笔记之享元模式

    1. 享元模式 享元模式是一种用于性能优化的模式,享元模式的核心是运用共享技术来有效支持大量细粒度的对象 1.1 传统的文件上传方法 以文件上传为例,文件上传功能可以选择依照队列,一个一个的排队上传, ...