본문

[잡담] 책 산거 인증

일시 추천 조회 814 댓글수 5


1

댓글 5

p[i]가 *(P+i)랑 동치일걸요? 아닌가?

오잇스 | (IP보기클릭)210.107.***.*** | 21.12.27 14:44
오잇스

예. 그런데. printf로 출력할때 (p+i)는 *를 붙이는데 왜 p[i]는 *p[i]라고 안 쓰는지 오히려 scanf로 값을 받을 때는 &p[i]로 배열에서 값을 받는 것 같이 쓰는지.. 이게 흰색과 백색처럼 표현만 다른 것인지..아니면 무언가 깊은 의미의 차이가 있는 것인지... 책도 마지막 장 밖에 안 남았는데...내가 이러려고 시작했나 자괴감 들고 괴롭네요 ㅎㅎ

인민배우 심영 | (IP보기클릭)117.52.***.*** | 21.12.27 15:30
인민배우 심영

C언어 건들인지는 너무 오래되서 포인터 정확하게 기억 안나는데 나름 기억나는데로 설명이 쉽도록 써볼게요. 배열의 특이한 설정(?)과 포인터가 섞여서 헤깔리실 수 있어요. 1. 배열명은 해당 배열의 [시작 주소값]을 의미한다. 2. 배열명 + i 를 하면 배열 형태의 [크기값이 자동 적용되서 계산된다]. (char 형이면 i가 1씩 증가, int 형이면 i가 4씩 증가 이런식) 제 기억으로는 *는 값을 가져올 때 쓰는거고 &는 주소를 가져올 때 쓰는거로 기억합니다. 예를 들어 p[i]에 있는 "값이(value)" 1000이라 할 때, *p[i]를 쓰면 "메모리 주소 1000에 있는 값"을 가져와서 배열과 관련없는 쓰레기값이 나와서 이렇게 쓰면 안되는거고, &p[i]로 쓰는 이유는 p[i]는 이미 배열 특성상 주소가 자동으로 적용되어 해당 메모리에 접근한 값이잖아요? 그럼 거기 값을 가지고 있는 주소를(&) 가져 와야 해당 값이 입력되어 있는곳에 데이터를 입력 가능하겠죠? 반대의 경우를 보자면 &p[i] 대신, 주소만 쓰여있는 (p+i) 이렇게 써도 작동될거에요. scanf("%d", p+i); 이런식으로요. 즉, 배열은 특이하게 배열명이 배열의 시작 주소값을 의미하고 있어서 이로 인하여 (p+i)는 주소값을 의미하므로, &p[i]와 같다. { (p + i) == &p[i] } (p+i)는 주소값이기에, 해당 데이터에 접근하려면 *를 붙여서 *(p+i) 이렇게 접근해야한다. 고로 *(p+i)는 p[i]와 같다. { *(p+i) == p[i] } 잘못 기억하고 있는것일 수 있...진 않겠죠 ㅠㅠ? 나름 C언어 재미있어서 옛날에 한참 파고들었는데 잘못 기억하고 있는것이라면 죄송하면서 제가 너무 슬플거 같네요. 아무튼 이미 이해를 완료하셨을 수 도있지만 제 기억이 맞다는 하에 나름 최대한 이해하기 쉽게 적어봤습니다. 조금이라도 도움이 되시길 바래요. 이런 개념이 잘 잡혀있으면 이중이든 삼중이든 다 응용이라 별거 없으실겁니다.

노엘 버밀리온 | (IP보기클릭)211.105.***.*** | 21.12.30 23:30
노엘 버밀리온

너무 오랜만에 C언어 공부하시는 분을 봐서 흥분해서 글을 길게 썻는데 혹시라도 제가 틀렸다면 말씀해주세요... 쪽팔림을 감수하고 반성하면서 나중에 다시 기회잡아 재공부 하겠습니다 ㅠㅠ

노엘 버밀리온 | (IP보기클릭)211.105.***.*** | 21.12.30 23:34
노엘 버밀리온

답변 감사드립니다. 공부하다 보니 용어가 너무 혼동되어서 포인터는 포인터인데 배열은 [정수 포인터]라고 표현하기도 하고......union을 보니 예전 엔지니어 분들은 정말 메모리를 아껴(?)쓰려고 고생 많았겠구나...포인터도 그런 노력에서 나온게 아닐까...짐작만 하고 있습니다. 장문의 답변 감사드립니다.

인민배우 심영 | (IP보기클릭)59.16.***.*** | 21.12.31 00:41
댓글 5
1
위로가기
세가좋어 | 추천 0 | 조회 295 | 날짜 2024.04.12
공돌이인생 | 추천 0 | 조회 105 | 날짜 2024.03.29
루리웹-1970043849 | 추천 0 | 조회 208 | 날짜 2023.12.18
질풍비장의패 | 추천 1 | 조회 589 | 날짜 2022.11.30
루리웹-3648796984 | 추천 0 | 조회 781 | 날짜 2022.11.23
루리웹-8641268934 | 추천 2 | 조회 702 | 날짜 2022.08.07
루리웹-4247021526 | 추천 2 | 조회 747 | 날짜 2022.07.25
루리웹-4746138650 | 추천 0 | 조회 680 | 날짜 2022.06.01
키라 요시카게 | 추천 1 | 조회 738 | 날짜 2022.05.24
우너무너 | 추천 0 | 조회 663 | 날짜 2022.05.14
키라 요시카게 | 추천 0 | 조회 652 | 날짜 2022.04.03
와이플 | 추천 0 | 조회 652 | 날짜 2022.01.14
와이플 | 추천 0 | 조회 677 | 날짜 2022.01.13
와이플 | 추천 1 | 조회 823 | 날짜 2022.01.13
인민배우 심영 | 추천 0 | 조회 879 | 날짜 2022.01.09
인민배우 심영 | 추천 0 | 조회 729 | 날짜 2022.01.08
오잇스 | 추천 0 | 조회 647 | 날짜 2022.01.05
인민배우 심영 | 추천 0 | 조회 541 | 날짜 2022.01.02
인민배우 심영 | 추천 0 | 조회 665 | 날짜 2021.12.31
인민배우 심영 | 추천 0 | 조회 1034 | 날짜 2021.12.30
인민배우 심영 | 추천 1 | 조회 655 | 날짜 2021.12.27
salvare545 | 추천 0 | 조회 613 | 날짜 2021.12.27
_ 식봉이는 식봉해 | 추천 4 | 조회 1175 | 날짜 2021.12.27
인민배우 심영 | 추천 0 | 조회 702 | 날짜 2021.12.25
인민배우 심영 | 추천 1 | 조회 814 | 날짜 2021.12.24
인민배우 심영 | 추천 0 | 조회 919 | 날짜 2021.12.16
V1046R-MAHORO | 추천 1 | 조회 510 | 날짜 2021.12.14
인민배우 심영 | 추천 0 | 조회 715 | 날짜 2021.12.10

1 2 3

글쓰기
게시판 매니저