c++菜鸟,一些基本语法

spydf 2009-04-06 09:53:00
int=*a;
a=new int
不明白a=new int 是什么意思,是不是这句子可以不要,或者写成a=0啊
还见到了a=new int(10),不能直接写成a=10么?
cout<<a[i]<<' '后面的单引号是什么意思?

...全文
101 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixiaoshashou 2009-04-06
  • 打赏
  • 举报
回复
这不是动态分配存储空间么。
花生苗 2009-04-06
  • 打赏
  • 举报
回复
受教了。
kostion 2009-04-06
  • 打赏
  • 举报
回复
int a = 10;//空间在栈上,使用后,超出变量的作用域,空间会被操作系统收回,程序员不必自行处理。
int *a = new int(10);//分配的空间在堆上。动态分配的,使用后,要程序员手工释放,不然会内存泄漏。

现在的计算机硬件发展很快,但是栈上的空间是有限的,堆上的空间可以认为是无限大。为什么使用指针和动态分配,这只是其中的一点好处而已,还有很多,楼主在看看书。
sayoath 2009-04-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hairetz 的回复:]
还见到了a=new int(10),不能直接写成a=10么?

a=new int(10);分配一个int型(4字节)空间,初始化为10,地址给a
a=new int[10]; 分配10个int型(40字节)空间,没有初始化,首地址给a
[/Quote]

a=new int(10),不能直接写成a=10么
先看这句话
a=new int[10];
()是把数组的第0个元素赋值
[] 就是直接new 出来并不赋值

其实都是分配一个空间
语法很多。有些事不要太较真。。

longfuture 2009-04-06
  • 打赏
  • 举报
回复
声明一个变量 并未他分配存储空间, 而且的用 delete 来删除该存储空间
  • 打赏
  • 举报
回复
还见到了a=new int(10),不能直接写成a=10么?

a=new int(10);分配一个int型(4字节)空间,初始化为10,地址给a
a=new int[10]; 分配10个int型(40字节)空间,没有初始化,首地址给a
  • 打赏
  • 举报
回复
int=*a; //int=*a; ????是int *a; 吧,声明一个int型指针,但是该指针没有获取有效内存
a=new int    //在堆区给指针a分配内存
morris88 2009-04-06
  • 打赏
  • 举报
回复
LS正解!
jakqigle 2009-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 se7venhigh 的回复:]
new操作符表示动态分配,a=new int(10)表示动态分配一个int对象,其初始化值为10,而指针a指向它。
注意,再不需要a时,要显示调用delete操作符来释放a。
后边的' '是char类型常量,是输出一个空格
[/Quote]
基本上是如此。
我们本可以就简单的int a=10;就可以了。new是为了动态分配内存,是在运行期间分配的。类似于自定义类型构造一个似的。
单引号那个为了输出已个空格字符。
se7venhigh 2009-04-06
  • 打赏
  • 举报
回复
new操作符表示动态分配,a=new int(10)表示动态分配一个int对象,其初始化值为10,而指针a指向它。
注意,再不需要a时,要显示调用delete操作符来释放a。
后边的' '是char类型常量,是输出一个空格
九桔猫 2009-04-06
  • 打赏
  • 举报
回复
C++Primer 一书中关于new关键字的解释。。。。
wwwr 2009-04-06
  • 打赏
  • 举报
回复
声明的时候不获的内存!!!

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧