반응형
파이썬에서는 데이터 타입을 적는 걸 생략하고 바로 변수로 만들 수 있다. 이를 동적 타이핑 언어라고 한다.
반대로, C언어에서는 변수 타입을 적어주어야 한다.
이러한 변수(variable number) 개념은 포인터 개념과 관련이 있다.
포인터는 변수는 각각에 맞는 주소가 할당이 되어 있는데 포인터는 값을 찍어주는 게 아니라. 그 주소가 무엇인지 알려준다.
역참조는 그 주소 안의 값이 무엇인지 대신 반환해주는 것이다.
이 포인터 개념이 C언어에서 중요하게 여기는 개념이다.
예를 들어서,
void swap(int *p, int *q);
temp = *p;
*p = *q;
*q = temp;
int main에서 swap(&a, &b)가 있다고 한다면, swap에서 a의 주소와 b의 주소를 불러왔고, 해당 함수는 포인터 함수의 int *p, int *q를 가르킨다. *p는 역참조 함수로 a의 주소값이 아닌 값을 가지고 온다. *q도 마찬가지로 &b에서 불러오는 주소를 입력받는다.
---라고 예전에 정리했었는데,
그냥 문제로 푸는 게 이해하는 게 더 빠를 것 같다.
int pointfunc (char *);
int main() {
char* p1 = "2022";
char* p2 = "20221008";
int n = pointfunc(p1);
int m = pointfunc(p2);
printf("%d", n+m);
}
int pointfunc (char* p) {
int count = 0;
while (*p != '\0') {
count ++;
p ++;
}
return count;
}
라는 코드가 있다면 count 되는 값은 무엇일까?
\0 은 도대체 왜 나오는 거고 수수께끼 처럼 생긴 * 표시는 무엇일까?
다음과 같다.
워드프레스 블로그에 정리했습니다.
반응형
'Programming' 카테고리의 다른 글
Windows에 Vim을 설치해보자. 윈도우 터미널 에디터 (0) | 2022.12.23 |
---|---|
온라인으로 컴파일 할 수 있는 사이트 추천 - C, C++, JAVA, Python, Html 등 (0) | 2022.10.08 |
bootstrap이 안 될 때 bootstrap v5 와 v4 (2) | 2022.09.18 |
atom packages 설치하기, atom-beautify, 한꺼번에 코드 타이핑하기 (0) | 2022.09.18 |
google font - 구글 폰트 굵기 조절하기thin, regular, black, 굵기 추가 (0) | 2022.09.14 |