C언어
C_17DAY
jwjin
2019. 2. 7. 21:29
728x90
메모리 영역이란?
3가지 영역으로 나뉘어 집니다. stack, heap, data로 나뉘어 지는데 stack에는 지역변수가 저장됩니다.
이때 지역변수란 흔히쓰는 {}중괄호 안의 변수를 말합니다.
data는 전역변수와 전역함수로 이루어 지는데 왼쪽벽에 만들어진 변수라 합니다. 왼쪽 벽이란 무엇이냐?
이런 숫자들을 뜻합니다.
마지막에는 생략되어 있는 것이 있는데 main();이 생략되어 있습니다.
다음은 포인터 변수 입니다.
포인터 변수란 일반 변수의 주소를 저장할 수 있는 변수 입니다.
표현은 이렇게 합니다.]
그럼 주소는 왜 저장하느냐?
원본변수가 아닌 다른변수가 원본의 값을 변경할 수 있기 때문입니다.
실행해 보겠습니다.
a는 5라는 값을 저장했기 때문에 5라 출력됩니다.
a의 주소는 실행할 때 마다 바뀌는데 p = &a라 했기 때문에 p의 값도 a의 주소와 똑같이 출력됩니다.
문제입니다.
100과 200이 저장되어 있는데 나머지 3군데에는 각각 300 400 500을 저장후 출력하라는 문제입니다.
0과 1에는 각각 100과 200이 저장되어 있으므로
test안에 p[2] = 300; p[3] = 400; p[4] = 500; 을 적으면
100 200에 이어 300, 400, 500이 나타나게 됩니다.
728x90