임베디드 개발(before)/IoT 임베디드 SW 개발자 양성과정

[7일차] C언어 교육7-(2차원 배열, 포인터 배열 등)

주운녕 2020. 7. 21. 21:36

강사님이 바뀌고, 포인터와 배열에 대한 개념을 설명하기 위해 좌-우파 구도 개념과 n차라는 개념을 만들어서 설명해주시는데, 설명하기 위해 새로운 개념을 또 배워야 하니 더 복잡하고 어려워지는 것 같다...

얼추 무슨 의미인지는 알겠지만, 원래이해하고 있던 방식과 이해 방식이 달라서 혼란스럽다..ㅎ..

열성적으로 가르쳐주시지만 뭔가 큰 그림을 그려놓고 진행되기보다는 작은 것 하나에 엄청 몰두해서 알려주시는 느낌이다.

 

1. 좌파우파 차수 개념

그니까. 좌파는 출력하면 주소값이, 우파는 데이터 값이 나온다. 즉, 데이터 값이 나오는 순간부터 우파다.

데이터가 나오고 주소 값이 나오고 가 중요한데 좌파 우파가 중요해진 느낌..

2. 초기화 하지 않은 전역 변수는 file size에 영향을 미치지 않는다.(hdd) 하지만 ram에서 돌아가기 시작하면 '0'으로 초기화되면서 메모리 사용한다.

3. static 전역변수 - 변수의 scope에 영향이 생긴다. 해당 파일에서만 사용할 수 있고 분할 컴파일 시 다른 파일에서 그 변수를 사용할 수 없다.

4. static 지역변수 - 함수의 life time 과 연관 있다. 보통 지역변수는 해당 블록이 끝나면 사라지지만  정적 지역변수는 메모리에 남아 호출되면 사용된다. 한 번만 초기화되는 특징이 있다.

5. register 변수 : stack(ram)에 생성이 되는 것이 아닌, 레지스터에 저장되기 때문에 매우 빠르지만 개수가 몇개 없어 전역 변수로 선언할 수 없고, 주소 값을 받을 수 없다. but, 포인터 변수론 만들 수 있다.

6. aa[2][2] == *(aa[2]+2) == *(*(aa+2)+2)

     배열값           *(배열 인덱스 2 행 첫 번째 열 주소 + 2 하면 인덱스 2 열 주소)

 

 

 

 

 


* 개인적인 학습 목적으로 작성한 글이기에 내용에 잘못된 정보가 있을 수 있습니다.