C++ 用new定义数组和直接定义数组

为什么下面的正确chars2[50]="whoareyou!";s2[18]='a';而下面的出错char*s1=newchar[50];s1="whoareyou!";... 为什么下面的正确
char s2[50]="who are you!";
s2[18]='a';

而下面的出错
char *s1=new char[50];
s1="who are you!";
s1[18]='a';
展开
 我来答
当代教育科技知识库
高能答主

2019-11-12 · 擅长科技新能源相关技术,且研究历史文化。
当代教育科技知识库
采纳数:1828 获赞数:387399

向TA提问 私信TA
展开全部

以m*n举例:第一种方法:int **a = new int*[m];for(int i=0; i < m; i++)a[i] = new int[n];

第二种方法:int* a = new int[m*n];a[i*n+j]是第i行第j列元素。

整型为例:const int M = 10, N = 5;//10行5列。int ** a;a = new int *[M];for(int i = 0; i < M; i ++)

C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。


扩展资料:

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。

每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

参考资料来源:百度百科-C++

kaixingui2012
推荐于2017-09-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6454万
展开全部
char *s1=new char[50]; //定义s1指针变量,并分配内存50个字符空间
s1="who are you!"; //这里重新将s1指向了"who are you!" 这个常量字符串所在的内存地址,该地址属于不可修改区域! 而且原来分配的50个字符的空间也找不到了,形成内存碎片了
s1[18]='a'; //想修改不可修改的区域中的内容,所以会出错!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
立地垄断地
2015-11-03 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:34.6万
展开全部
因为一个literal字符串只能赋给const char*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
silmerusse
2014-09-13 · TA获得超过6640个赞
知道大有可为答主
回答量:2919
采纳率:33%
帮助的人:2102万
展开全部
因为一个literal字符串只能赋给const char*
追问
能说明白点吗?而且是执行到s1[18]='a'这里出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乀柠檬最萌
推荐于2017-10-10 · TA获得超过1.6万个赞
知道大有可为答主
回答量:4550
采纳率:95%
帮助的人:454万
展开全部
以m*n举例:
第一种方法:
int **a = new int*[m];
for(int i=0; i < m; i++)
a[i] = new int[n];
第二种方法
int* a = new int[m*n];
a[i*n+j]是第i行第j列元素
以整型为例
const int M = 10, N = 5;//10行5列。
int ** a;
a = new int *[M];
for(int i = 0; i < M; i ++)
a[i] = new int[N];
所得到的a就是10行5列的数组。
使用后需要释放,代码为
for(int i = 0; i < M; i ++)
delete [] a[i];
delete []a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式