|
C/C++에서 배열의 인덱스는 0부터 시작해서 배열의 원소갯수-1 까지 가능해요.
예를 들어,
int buff[20];
일 때
buff 배열의 원소갯수가 20개이므로
buff[0]~buff[19]가 유효한 배열원소들에요.
"
int aqwe[2]={1,5};
Edit12->Text =IntToStr(aqwe[2]);
"할 때
14230404 가 출력된다고 하셨는데
이는 배열의 범위를 벗어난 곳에 있는 쓰레기값이 표시된 거에요.
aqwe는 원소가 2개이므로 aqwe[0]과 aqwe[1]만 유효한 배열원소에요.
Edit12->Text =IntToStr(aqwe[0]); 또는 Edit12->Text =aqwe[0]; 하면 1이 표시되고
Edit12->Text =IntToStr(aqwe[1]); 또는 Edit12->Text =aqwe[1]; 하면 5가 표시돼요.
한편, 배열 원소들의 값을 대입문(=)을 사용해서 일거에 지정하는 것은 배열을 정의할 때(만들 때)만 가능해요.
마지막으로, 배열의 원소들 중 큰 값 순으로 몇 개를 얻고 싶다면 먼저 내림차순으로 정렬해야 해요.
정렬방법에는 여려가지가 있어요.
박지수 님이 쓰신 글 :
: 형변환 하더라도 값이 않나오네요.....
: 왜그런걸까요;;;
: void __fastcall TTEST1::Button10Click(TObject *Sender)
: {
: int aqwe[2]={1,5};
: Edit12->Text =IntToStr(aqwe[2]);
: }
: 이렇게 코딩하고 버튼 클릭하면 14230404 가 출력 되네여...
:
: 도라지 님이 쓰신 글 :
: : int a[10]={0,1,2,3,4,5,6,7,8,9};
: : Edit1->Text = a[1]
: :
: : 이렇게 하더라도 묵시적 형변환으로 정상적으로 1이 Edit1에 들어갈텐데요?
: :
: : 아니면.. 박지수님 아래 질문에 등록되어져 있는 형변환으로 해보심이?
: :
: : Edit1->Text = IntToStr(a[1]);
: :
: : :박지수 님이 쓰신 글 :
: : : int aa[10]={1,2,3,4,5,6,7,8,9,0};
: : : Edit1->Text=aa[1];
: : : 이렇게하면 1이 들아가는게아니고 전혀다른 큰수가 들어가네여 이건 또 어떻게 해야하는걸까요...
: : : 그리고 배열중 큰 배열 값 3개 만 나오게하는방법은 없는건가요??
: : :
: : : Lyn 님이 쓰신 글 :
: : : : int aa[10] = {1,2,3,4,5,6,7,8,9,0};
: : : :
: : : : aa[40]이 접근 가능한건 C++에선 배열의 범위체크를 하지 않기때문입니다.
: : : : 범위를 넘어가는 곳을 사용 할 경우 어떤문제가 생긱지 예측할 수 없습니다.
: : : :
: : : : 박지수 님이 쓰신 글 :
: : : : : int aa[10];
: : : : : 배열을 만들고 값을 배열에 다넣어주고
: : : : :
: : : : : 그중 가장 큰 수를 가진 배열 3개만 뽑아내야 하는데 어떻게 해야할까여
: : : : :
: : : : : 그리고
: : : : :
: : : : : int aa[10];
: : : : :
: : : : : 배열에 10개 모두에 한번에 값을 넣어주는 방법이 ...
: : : : :
: : : : : aa={1,2,3,4,5,6,7,8,9,0,}; 이렇게 않되더라구요
: : : : :
: : : : : 그리고
: : : : :
: : : : : 배열을 int aa[10]; 까지 만들었는데
: : : : :
: : : : : aa[40]=124; 해도 배열이 저절로 만들어지고 값이 들어가지더라구요
: : : : :
: : : : : 왜그런가요?
|