int a:
int *b = &a;
*b = 10; 하면 a의 값이 10이 되는거임
포인터도 변수라 int와 같은 이름을 가질 수 없고 포인터가 어떤 변수를 가르키는지는 스스로 지정해야 함
익명(49.174)2025-08-22 21:41
답글
그럼 포인터는 메모리에 이름을 세겨주는 것밖에 안되는거임?
yajok(hazard8241)2025-08-22 21:45
답글
@yajok
이미 있는 메모리의 주소를 저장하는거임
내 댓글에서는 a는 이미 메모리 주소가 있고 b는 a가 어디 있는지 가르키는 거
익명(49.174)2025-08-22 21:47
답글
@ㅇㅇ(49.174)
그럼 a가 어딨는지 모르는거를
포인터 *b 로 위치를 가르키는거야?
yajok(hazard8241)2025-08-22 21:48
답글
@yajok
일단 그정도로 이해하면 될듯
익명(49.174)2025-08-22 21:51
답글
그렇게이해하면 진정하게이해한게아님
포인터 제대로이해할라면 어셈블리어랑 리버싱공부하삼
ㅇ(223.39)2025-08-22 21:51
답글
@ㅇ(223.39)
어셈블리 공부하기전에 C언어 실력 키우려는데
어떤 방식으로 키울지 추천좀 해줄 수있어?
yajok(hazard8241)2025-08-22 21:53
답글
공부순서잘못됨 포인터이해할라면 어셈블리어부터 이해해야함
ㅇ(223.39)2025-08-22 21:55
답글
@ㅇ(223.39)
그럼 어셈블리로 백준같은거 풀면됨? 너무 가혹해잇
yajok(hazard8241)2025-08-22 21:55
답글
@ㅇ(223.39)
포인터에 그정도까지 필요한가? 솔직히 스택이랑 힙 같이 메모리 구조까지만 이해하면 충분할 거 같은데
익명(49.174)2025-08-22 21:56
답글
과거선조들이 메모리어떻게 상상하고 C만든지 이해해야하니까
ㅇ(223.39)2025-08-22 21:58
답글
c부터 배워야한다는애들은 포인터개념을 제대로모르는애들임
ㅇ(223.39)2025-08-22 21:59
답글
C에서 사용하는포인터 = C만든 사람들이 정의한포인터
일반적인포인터 = 메모리주소담는 변수
ㅇ(223.39)2025-08-22 22:03
답글
방금 정의해줬잖음
ㅇ(223.39)2025-08-22 22:13
답글
왜 정의에 동어반복이 불가능할거라생각함?
ㅇ(223.39)2025-08-22 22:16
답글
@PyTorch
c 먼저 배우고 어셈, 메모리 구조 배운 사람인데 223.93의 의견에 동의함
c만 배웠을때는 주소와 값이라는 추상적인 규칙으로만 이해했었는데 어셈, 메모리 구조를 알고 나니까 실제로 어떻게 구현이 되는건지, 포인터가 왜 필요한지 이런걸 더 깊게 이해할수있고 저수준적인 개념이 확실하게 잡힘
님도 혹시 어셈, 메모리 구조를 아직 모른다면 한번 공부해보는 것도 좋습니다
익명(222.107)2025-08-23 03:25
답글
니말이 틀렸다니까
ㅇ(223.39)2025-08-23 11:27
답글
@ㅇ(223.39)
급 식 쩝 쩝 충
익명(211.235)2025-08-23 12:49
답글
@ㅇ(223.39)
이새낀 확실히 병신새끼네 ㅋ
익명(116.120)2025-08-24 13:18
ABC가 왜 두갠데
익명(121.181)2025-08-22 21:45
답글
나무위키에 저렇게 되있어서
복붙했는데 틀렸나 보네 ㅈㅅㅈㅅ
yajok(hazard8241)2025-08-22 21:46
코딩 실력 키우려면 어케 해야함?
백준 실버1 까지만 하면 충분함?
yajok(hazard8241)2025-08-22 22:01
답글
프로젝트를 만들어라
테트리스 같이 간단한거말야
백준이 구현 실력에 도움을 주는건 맞지만
유지보수성 높은 좋은 코드를 작성하는 것에는 도움되지 않는다
이것을 늘리려면 일단 좆같은 코드를 짜보는게 우선이다
익명(211.193)2025-08-22 23:23
변수는 메모리 공간에 위치하고 포인터는 그 위치를 값으로 가짐
포인터 b의 값을 00700000 으로 설정하면 메모리 주소 00700000을 가리키므로 해당 위치에 있는 값에 접근할 수 있음
변수 int a = 1 를 가리키려면 a의 주소를 알아야 하니 & 를 이용해서 int* 타입의 주소를 구함
그 주소를 포인터 b에 넣으면 b는 a가 놓인 위치를 값으로 가짐
익명(memory6344)2025-08-23 03:46
너무 어렵게 생각하지마
그냥 메모리 주소를 가리키는 변수가 포인터임, 이게 유효하냐 안유효한 주소냐는 별로 중요한게 아님 (안유효하면 segfault 등 보통 메모리 에러 뜰거니까)
중요한건 포인터가 뭐냐가 아니고 왜 포인터를 쓰냐
c언어 같은데에선 기본적으로 값이 다 복사 됨
포인터를 보내면 포인터를 역참조해서 함수같은데 포인터 인자로 보낸 원본 값을 바꿀수 있음 이중 포인터 삼중 포인터도 그런식으로 이해하면 됨
익명(121.140)2025-08-24 13:03
int a = 10;
int* ap = &a;
a는 메모리 공간 어딘가에 [ 0x01: a ] 이런식으로 매핑되어있음.
ap는 그 `a의 주소인 0x01`을 값으로 가지는거임.
그래서 그냥 ap를 출력했을 때는 0x01, 즉 주소값이 나오고 * 연산자를 사용해서 *ap 를 출력해야 0x01에 있는 값이 나오는거임
int a: int *b = &a; *b = 10; 하면 a의 값이 10이 되는거임 포인터도 변수라 int와 같은 이름을 가질 수 없고 포인터가 어떤 변수를 가르키는지는 스스로 지정해야 함
그럼 포인터는 메모리에 이름을 세겨주는 것밖에 안되는거임?
@yajok 이미 있는 메모리의 주소를 저장하는거임 내 댓글에서는 a는 이미 메모리 주소가 있고 b는 a가 어디 있는지 가르키는 거
@ㅇㅇ(49.174) 그럼 a가 어딨는지 모르는거를 포인터 *b 로 위치를 가르키는거야?
@yajok 일단 그정도로 이해하면 될듯
그렇게이해하면 진정하게이해한게아님 포인터 제대로이해할라면 어셈블리어랑 리버싱공부하삼
@ㅇ(223.39) 어셈블리 공부하기전에 C언어 실력 키우려는데 어떤 방식으로 키울지 추천좀 해줄 수있어?
공부순서잘못됨 포인터이해할라면 어셈블리어부터 이해해야함
@ㅇ(223.39) 그럼 어셈블리로 백준같은거 풀면됨? 너무 가혹해잇
@ㅇ(223.39) 포인터에 그정도까지 필요한가? 솔직히 스택이랑 힙 같이 메모리 구조까지만 이해하면 충분할 거 같은데
과거선조들이 메모리어떻게 상상하고 C만든지 이해해야하니까
c부터 배워야한다는애들은 포인터개념을 제대로모르는애들임
C에서 사용하는포인터 = C만든 사람들이 정의한포인터 일반적인포인터 = 메모리주소담는 변수
방금 정의해줬잖음
왜 정의에 동어반복이 불가능할거라생각함?
@PyTorch c 먼저 배우고 어셈, 메모리 구조 배운 사람인데 223.93의 의견에 동의함 c만 배웠을때는 주소와 값이라는 추상적인 규칙으로만 이해했었는데 어셈, 메모리 구조를 알고 나니까 실제로 어떻게 구현이 되는건지, 포인터가 왜 필요한지 이런걸 더 깊게 이해할수있고 저수준적인 개념이 확실하게 잡힘 님도 혹시 어셈, 메모리 구조를 아직 모른다면 한번 공부해보는 것도 좋습니다
니말이 틀렸다니까
@ㅇ(223.39) 급 식 쩝 쩝 충
@ㅇ(223.39) 이새낀 확실히 병신새끼네 ㅋ
ABC가 왜 두갠데
나무위키에 저렇게 되있어서 복붙했는데 틀렸나 보네 ㅈㅅㅈㅅ
코딩 실력 키우려면 어케 해야함? 백준 실버1 까지만 하면 충분함?
프로젝트를 만들어라 테트리스 같이 간단한거말야 백준이 구현 실력에 도움을 주는건 맞지만 유지보수성 높은 좋은 코드를 작성하는 것에는 도움되지 않는다 이것을 늘리려면 일단 좆같은 코드를 짜보는게 우선이다
변수는 메모리 공간에 위치하고 포인터는 그 위치를 값으로 가짐 포인터 b의 값을 00700000 으로 설정하면 메모리 주소 00700000을 가리키므로 해당 위치에 있는 값에 접근할 수 있음 변수 int a = 1 를 가리키려면 a의 주소를 알아야 하니 & 를 이용해서 int* 타입의 주소를 구함 그 주소를 포인터 b에 넣으면 b는 a가 놓인 위치를 값으로 가짐
너무 어렵게 생각하지마 그냥 메모리 주소를 가리키는 변수가 포인터임, 이게 유효하냐 안유효한 주소냐는 별로 중요한게 아님 (안유효하면 segfault 등 보통 메모리 에러 뜰거니까) 중요한건 포인터가 뭐냐가 아니고 왜 포인터를 쓰냐 c언어 같은데에선 기본적으로 값이 다 복사 됨 포인터를 보내면 포인터를 역참조해서 함수같은데 포인터 인자로 보낸 원본 값을 바꿀수 있음 이중 포인터 삼중 포인터도 그런식으로 이해하면 됨
int a = 10; int* ap = &a; a는 메모리 공간 어딘가에 [ 0x01: a ] 이런식으로 매핑되어있음. ap는 그 `a의 주소인 0x01`을 값으로 가지는거임. 그래서 그냥 ap를 출력했을 때는 0x01, 즉 주소값이 나오고 * 연산자를 사용해서 *ap 를 출력해야 0x01에 있는 값이 나오는거임