들어가며
오늘은 아침에 운동도 다녀왔다! 재활치료 겸 다녀왔는데, 그래도 발이 살살 아픈게 조금 쉬면서 츄라이를 해봐야겠다.
ㅤ
수업이 끝나고나서는 클래스메이트한테 거의 1시간 반동안 개고생에 있는 포인터 연산을 수행하는 과정에 대해서 열심히 1대1로 수업을 해줬다. ㅋㅋㅋㅋ 나름 열심히 꿀팁도 알려주고 연습문제도 내면서 개념을 전달했는데, 잘 되었는지는 모르겠다. 이번주에 시험 치면 결과로 알 수 있겠지. 후후.
ㅤ
내일도 수업할 예정인데, 인증샷으로 남기게 칠판에 쓴 걸 좀 찍어놔야겠다.
ㅤ
RN 프로젝트도 얼른 끝내야하는데,,,
ㅤ
오늘의 키워드
모듈?

- 위 그림에서 모듈은 c언어 파일 하나를 말함.
- 각 파일을 별도로 컴파일하면 파일마다 obj 파일이 나옴.
- 오브젝트 파일들을 링크하여 실행파일로 만듦.
- 링크 - 미정의된 심볼들을 정의된 심볼들과 연결
- 메모리주소 할당
- 모듈에 대한 엄격한 정의는 없는데, 일반적으로 모듈은 [ C파일 + 파일 앞에 작성된 헤더들의 내용 ] 를 말함.
- 이후에 링크 과정에서 파일들을 합친다고 생각하면 됨!
ㅤ
포인터의 연산
포인터 주소가 같더라도 포인터의 타입이 다르면 포인터 연산의 결과가 달라진다.
int main(void) {
int ary[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
// 아래 4개의 포인터들은 모두 동일한 주소를 가리킴
printf("%x %x %x %x\n", ary, ary[0], *ary, &ary);
// 그러나 타입이 서로 다르기 때문에 연산 결과는 달라질 수 있음.
printf("%x %x %x %x\n", ary+1, ary[0]+1, *ary+1, &ary+1);
// ary + 1 => ary + 16
// ary[0] + 1 => ary + 4
// *ary + 1 => ary + 4
// &ary + 1 => ary + 48
return 0;
}
ㅤ
개고생

ㅤ
????
여기에 대가리를 박다가 방법을 좀 찾아낸 것 같다…!
ㅤ
a[i] == *(a + i)
- 배열 참조와 포인터 참조 방식 간의 변환 방식 적용하기
- 참조연산자
*을 찍는다고 무조건 값 가지러 출발하는게 아님! *을 찍으면 한 차원 아래로 내려감 ⇒ 이 경우에는 포인터 연산 시 단위가 줄어든다고 생각하면 됨.- 반대로
&을 찍으면 한 차원 위로 올라감 ⇒ 이 경우에는 배열 첫 요소 → 배열 전체를 가리킴 등으로 연산 시 단위가 커진다고 생각하면 됨.
320x100
'TIL' 카테고리의 다른 글
| [250821] Day 11 - C언어는 모든게 포인터인가요 (0) | 2025.08.22 |
|---|---|
| [250820] Day 10 - &&__ ** 별보러가자 (0) | 2025.08.21 |
| [250818] Day 8 - 알고리즘 재활치료 시작 (3) | 2025.08.18 |
| [250814] Day 4 - 포인터지옥 벌써 시작 (7) | 2025.08.15 |
| [250813] Day 3 - 날씨 최고로 좋다~ (3) | 2025.08.13 |