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