动态数组的问题

我不会的有点多,感谢您的耐心。主要有2个问题,我写在了照片上。
致谢!(`•ω•´)ゞ(`•ω•´)ゞ

禾则
浏览 1314回答 2
2回答

onemoo

“为什么是 return 1,为什么在 if 语句中要返回值”我猜这是在 main 函数中吧?  首先说,你应该知道这里是因为遇到了无法运行下去的情况,所以要用 return 来退出程序,对吧?   你只是不知道为什么返回 1?我不知道你是否明白“为什么在 main 函数的结尾你总是写返回 0 呢? ”,如果老师没讲过这个的话,你想没想过这个问题呢?main 函数的返回类型是 int,那么在 return 时就必须返回 int 值。之所以总是在结尾返回 0 是因为 main 函数的返回值是有意义的:依惯例,main 返回 0 表示程序正常结束;返回非 0 值表示程序出错退出。所以 return 1 那里是因为程序出错返回,于是就返回了一个非 0 值 1(好像是用 1 比较多)。“为什么是 p[i]?假定新创建了 m[n] ....”p 是个 int 指针。new int[n] 是创建(或说分配)了一段连续 n 个 int 的空间。p = new int[n] 就是让 p 指向这个 n 个 int 的第一个。这样的 p 虽是指针,但在用法上你完全可以按照数组的方式来通过 p 访问这段内存(因为数组就是一段连续的内存),就好象 p 是这样声明的:int p[n个];    如果你学了指针和数组的关系,就会明白这种等价用法了。那么 p[i] 就是这段内存中的第 i 个 int,所以 cin >> p[i] 就是把输入的内容存入这个 int 中。当然这是在循环中,这代码就是把输入的数依次存入这段内存中。至于 p = &m[0]。 按照你说的,假设这段内存用 m 数组表示,那么确实 p 的值就是 &m[0],也就是 p 指向这段内存第一个 int 的地址。 但你这里是需要通过 p 来访问这段内存中的每一个 int!  所以才用了 p[i] 这样的写法。

禾则

很感谢您,谢谢您这么详细的解答。
打开App,查看更多内容
随时随地看视频慕课网APP