社区
C语言
帖子详情
new int()和new int[]的问题!
foxjun
2003-01-07 02:02:53
以前没有注意这个问题请高手指教一下!
好象int 都是用new int()
char都是new char[]!
请问他们的用法的差异以及通常什么时候用[]或()!
...全文
1904
12
打赏
收藏
new int()和new int[]的问题!
以前没有注意这个问题请高手指教一下! 好象int 都是用new int() char都是new char[]! 请问他们的用法的差异以及通常什么时候用[]或()!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
IceboundRock
2003-01-07
打赏
举报
回复
[]用于分配数组
()用于初始化,它会在内存中生成一个临时对象
foxjun
2003-01-07
打赏
举报
回复
哎呀刚刚快手写错了!
i=10;
应该是*i=10;
我错了,认错!
foxjun
2003-01-07
打赏
举报
回复
大概知道了!要去写写看看!
谢谢!我晚上才结贴!
zengyh
2003-01-07
打赏
举报
回复
你的i是指针而不是变量,没有分配内存。所以得用new。
另外i不等于10,i的值是一个地址,*i才是10,也就是i所指的地址里的内容。
如果
int i;
i=10;
那是一点问题都没有,但你现在问的是动态分配内存的问题。
要赋值,当然也可以:
int *i;
i=new int;
*i=10;
point_to
2003-01-07
打赏
举报
回复
当有类的时候 new int(10)
会以10为参数调用构造函数!这个我了解!
我想知道它们通常在什么时候用!
如 int *i;
i=new int(10);
那么以上面的朋友说i=10吗;
不是!表示*i=10,就是指针的值为10了。
那么为什么不直接用i=10;呢?
有什么差异!为什么要用i=new int(10);呢?
int i=10;//在栈中分配的
i=new int(10);//在堆中分配的
cwanter
2003-01-07
打赏
举报
回复
int i=10;i的内存在堆栈上分配,由编译器管理其生存周期。int *i=new int(10);i指向的地址在堆上分配内存。由你自己管理其生存周期。你如果不及时delete i;就会造成内存泄漏。
SHIZUMARU
2003-01-07
打赏
举报
回复
new int(10)得到的是一个地址,不是整型。
耙子
2003-01-07
打赏
举报
回复
int *i;
i=new int(10);
应该说 (*i == 10);
i是个指针,它必须申请空间,
int *i;
i= new int;
*i= 10;
point_to
2003-01-07
打赏
举报
回复
就是上面的了!
foxjun
2003-01-07
打赏
举报
回复
当有类的时候 new int(10)
会以10为参数调用构造函数!这个我了解!
我想知道它们通常在什么时候用!
如 int *i;
i=new int(10);
那么以上面的朋友说i=10吗;
那么为什么不直接用i=10;呢?
有什么差异!为什么要用i=new int(10);呢?
cwanter
2003-01-07
打赏
举报
回复
new int(10)是分配一个int,用()中的10初始化。
new char[10]是分配10个int,没有初始化。
如果是类的话,new会调用类的默认构造函数。
Qtree
2003-01-07
打赏
举报
回复
()给new出来得内存初始化,[]是给出内存大小
C++中
new
的用法
1、开辟单变量地址空间
new
int
; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.
int
*a =
new
int
即为将一个
int
类型的地址赋值给整型指针a。
int
*a =
new
int
(5) 作用同上,但是同时将整数赋值为5。 2、开辟数组空间 要访问
new
所开辟的结构体空间,无法直接通过变量名进行,只能通过赋值的指针进行访问。用
new
可以动态开辟,撤销地...
int
*p=
new
int
[n] 与
int
*p =
new
int
[n]() 差别
/*That's not quite true (you should almost certainly get yourself an alternative reference), you are allowed an empty initializer (()) which will value-initialize the array but yes, you can't initiali
new
动态分配数组空间
(一)定义一个整数
int
*p =
new
int
;
int
*p =
new
int
(4); //赋初值4 (二)定义一个一维数组
int
*p =
new
int
[SIZE]; P 指向的为数组的首地址,数组是以
int
类型为基本单元的,p作为数组名使用 (三)定义一个二维数组
int
(*
new
函数的使用方法
使用方法 如:
int
p=
new
int
(3); 输出p可输出3 若不想使用指针,可用如下方式:
int
q=*
new
int
; q=1; 输出q可输出1 在做算法题时,有时未要求所需空间多大且多组输入时,可使用
new
函数来动态分配存储空间
int
*s=
new
int
[n]; 其中n不是数字,可以用已知大小的
int
变量。 例题 HNUCM-OJ:1305 题目描述 先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串少于一百个字符。 如果在输入过程中输入的一个字符串为“
4. 数组
int
[]
int
Arr =
new
int
[]{5,9,3,7,2,6},写出一个函数可根据传参(参数为需要获取的数组类型:1:正序排序数组;2:倒序排序数组;)来进行排序,返回值为
int
4. 数组
int
[]
int
Arr =
new
int
[]{5,9,3,7,2,6},写出一个函数可根据传参(参数为需要获取的数组类型:1:正序排序数组;2:倒序排序数组;)来进行排序,返回值为
int
数组,请注意代码规范与质量。 [分值:20] 您的回答:(空) (简答题需要人工评分) package com.
int
erview; public class Test4 { ...
C语言
70,020
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章