C++

原创 2016年08月31日 14:03:19

char str[]="abcde abcde";

char* str="abcde abcde";

在程序赋初值的时候一定要注意了。解释如下:

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开始的这部分存放这些字符的内存是程序员可以完全控制的,可读写,因此在这些内存写当然是没有问题的!


C++递归算法:我的理解

递归算法,总结起来具有以下几个特点:     1  它有一个基本部分,即直接满足条件,输出     2  它有一个递归部分,即 通过改变基数(即n),来逐步使得n满足基本部分的条件,从而输出   ...

C++算法之 求二叉树的节点个数、深度、四种遍历方法

[cpp] view plain copy  print? //节点的数据结构   class BTree   {   public:    int       m...

STL编程题1(C++程序设计第1周)

问题描述 下面的程序用枚举法解决如下问题,请填空。 平面上的一个矩形,如果其边平行于坐标轴,我们就称其为“标准矩形”。给定不重复的 n 个整点(横、纵坐标都是整数的点),求从这n个点中任取...
  • zzygt
  • zzygt
  • 2016年08月04日 19:42
  • 251

c++设计模式----Decorator(装饰)

装饰模式: 意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式相比生成子类更为灵活。  适用性:            在不影响其他对象的情况下,以动态、...

如何阅读别人的代码---c、c++程序学习

[ C/C++ ] 程序学习--如何阅读别人的代码 ++++++++++++ 第一章: 导论 ++++++++++++ 1.要养成一个习惯, 经常花时间阅读别人...

使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420

利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是:       struct SwsContext *sws_getContext...

C++ 中list容器,自定义sort排序规则,stl中sort自定义排序规则

最近做游戏开发,其中容器(背包,仓库)中的整理功能需要对容器中的所有道具按照一定的规则来进行整理和排序, 这里有两种解决方案,一是重载list.sort()的操作运算符,二是通过list.sort(...
  • jcracker
  • jcracker
  • 2013年03月22日 13:05
  • 13192

Qt(C++)项目中使用 Basler 工业相机(2 参数设置)

Qt(C++)项目中使用 Basler 工业相机(2 参数设置)上一篇博客介绍了 pylon 的基本结构和如何枚举系统中的相机。这一篇主要讲讲如何设置相机的各个参数。在设置相机参数之前,先要获取相机对...

C++多线程编程经验——线程暂停、恢复

多线程中,线程需要暂停的原因多种多样,基本分为两大类,1是等待数据,2是系统资源紧张,停止计算以把资源让给其他线程.一般初学者会使用的方法就是使用SuspendThread和ResumeThread这...

C++中输入字符串的几种方法

转自http://gwyan.blog.163.com/blog/static/213337092201361734257744/ C++中几个输入函数的用法和区别(cin、cin.get()、c...
  • AHzZ123
  • AHzZ123
  • 2017年04月23日 13:01
  • 5357
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++
举报原因:
原因补充:

(最多只允许输入30个字)