포인터가 어떻게 작동하는지 알고 싶습니다. 그래서이 작은 프로그램을 만들었습니다. 우선 char 포인터를 가리키는 p 포인터를 만듭니다.char 및 char * (포인터)
첫 번째 질문은이 시점입니다. 내가 포인터를 만들면 그 값은 memoryaddress입니다 (포인터가 아닌 객체를 가리키면).하지만 이번에는 내 예제에서 "haha"입니다. char *에서이 방식으로 작동하는 이유는 무엇입니까? 그리고 cin >> p로 어떻게 가치를 더할 수 있습니까?
두 번째 질문은 내가 만든 포인트에서 * p 포인터의 값을 가진 q char를 생성한다는 것입니다. 그러나 그것의 가치와 주소는 "h"도, 그러나 왜? 이 char 객체의 메모리 주소 여야합니다! 이는 무의미 : D (와 Mingw - GCC)
int main() {
char *p;
cin >> p; //forexample: haha
char q = *p;
cout << "&q = " << &q << endl; //&q = h
cout << "q = " << q << endl; //q = h
return 0;
}
MORE : 처음 A [100] 숯불에 메모리를 할당하는 경우; char * p = a; 그때 & q = h»ŢĹ, 그래서 "h"와 어떤 혼란. 하지만 그것은 메모리 주소 여야합니다! 그리고 내 질문은 왜 그때 주소가 아닌가요?
도움이되기를 바랍니다. 'p'는 당신이 입력 할 메모리가 없습니다. – chris