C++求解答

zzw文仔 暂时没有 学生  2013-05-21 09:30:08
#include<iostream>
using namespace std;
class exam{
public:
exam(int n)
{x=n;}
int get_x()
{return x;}
private:
int x;
};
int main()
{
exam ob1[5]={11,22,33,44,55};
for (int i=0;i<5;i++)
cout<<ob1[i].get_x()<<' ';
return 0;
}
当把15行的i<5改成i<6的时候其输出结果为11 22 33 44 55 1245064 Press any key to continue 为什么呢?为什么后面躲一个“1245064”呢?
...全文
49 1 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
我不懂电脑 2013-05-22
成i<6的时候数组越界了 。
回复
星際訪客 2013-05-21
#include <stdio.h>
#include <iostream>
using namespace std;
class exam {
public:
	exam(int n) {x = n;}
	int get_x() {return x;}
private:
	int x;
};
int main()
{
	exam ob1[5] = {11, 22, 33, 44, 55}; // 5個數組為 ob1[0] 至 ob1[4]
	// 當 i<5 時...i 值漸進 0 至 4...記憶起始指標是由 0 開始而非 1 指向.
	// 若改 i<6 時...i 值漸進 0 至 5 時...這樣不安全...因為數組沒有定義
	// ob1[5]...所以您顯示出來的 ob1[5] = 1245064 為不確定數.
	for (int i = 0; i < 5; i++)
		cout << ob1[i].get_x() << ' ';
	system("pause"); // 請按任意鍵繼續...
	return 0;
}
回复
星際訪客 2013-05-21
#include <stdio.h>
#include <iostream>
using namespace std;
class exam {
public:
	exam(int n) {x = n;}
	int get_x() {return x;}
private:
	int x;
};
int main()
{
	exam ob1[5] = {11, 22, 33, 44, 55}; // 5個數組為 ob1[0] 至 ob1[4]
	// 當 i<5 時...i 值漸進 0 至 4...記憶起始指標是由 0 開始而非 1 指向.
	// 若改 i<6 時...i 值漸進 0 至 5 時...這樣不安全...因為數組沒有定義
	// ob1[5]...所以您顯示出來的 ob1[5] = 1245064 為不確定數.
	for (int i = 0; i < 5; i++)
	cout << ob1[i].get_x() << ' ';
	system("pause"); // 請按任意鍵繼續...
	return 0;
}
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2013-05-21 09:30
社区公告
暂无公告