이 간단한 스크립트를 작성하여 참조가 무엇인지 이해했으며 char 배열을 고수하게되었습니다. I는 &numbers[i]
사용할 때, I는 메모리 위치 이상한 번호가 접수 상기 int
배열char 참조 이해
3
0xbffff958
6
0xbffff95c
9
0xbffff960
12
0xbffff964
15
0xbffff968
--------------
a
abcde
b
bcde
c
cde
d
de
e
:
int numbers[5] = {3, 6, 9, 12, 15};
for (int i = 0; i < 5; i++)
{
cout << numbers[i] << endl;
cout << &numbers[i] << endl;
}
cout << "--------------" << endl;
char letters[5] = {'a', 'b', 'c', 'd', 'e'};
for (int i = 0; i < 5; i++)
{
cout << letters[i] << endl;
cout << &letters[i] << endl;
}
는이 출력된다. 괜찮아. 그것은 내가 정확히 이해 한 것입니다.
그러나 char
을 사용하는 이유는 무엇입니까?
나는 두 번째 부분이 지옥과 등을 모두 깨뜨리지 않았다고 놀랍다. 코드가 말한대로 '글자'는 끝이 아닌 것으로 간주한다. 그러나 UB는 "프로그램이 작동하는 것조차도 모든 일이 발생할 수 있습니다."라는 의미입니다. – cHao
@cHao : 일부 컴파일러는 디버그 모드로 컴파일 할 때 제로를 초기화합니다. 아마 OP는 "행운"이었다. –
나는 아직 아무도 이것을 언급 한 것이 놀랍다. 그러나 이것은 참고 문헌과는 아무 관련이 없다. 당신은 포인터에 대해 이야기하고 있습니다. –