p[i]가 *(P+i)랑 동치일걸요? 아닌가?
프로그래밍 & 코딩 | 구독자 30명 | 식봉이는 식봉해
-
오잇스21.12.27 14:44
-
오잇스예. 그런데. printf로 출력할때 (p+i)는 *를 붙이는데 왜 p[i]는 *p[i]라고 안 쓰는지 오히려 scanf로 값을 받을 때는 &p[i]로 배열에서 값을 받는 것 같이 쓰는지.. 이게 흰색과 백색처럼 표현만 다른 것인지..아니면 무언가 깊은 의미의 차이가 있는 것인지... 책도 마지막 장 밖에 안 남았는데...내가 이러려고 시작했나 자괴감 들고 괴롭네요 ㅎㅎ인민배우 심영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언어 재미있어서 옛날에 한참 파고들었는데 잘못 기억하고 있는것이라면 죄송하면서 제가 너무 슬플거 같네요. 아무튼 이미 이해를 완료하셨을 수 도있지만 제 기억이 맞다는 하에 나름 최대한 이해하기 쉽게 적어봤습니다. 조금이라도 도움이 되시길 바래요. 이런 개념이 잘 잡혀있으면 이중이든 삼중이든 다 응용이라 별거 없으실겁니다.노엘 버밀리온21.12.30 23:30
-
노엘 버밀리온너무 오랜만에 C언어 공부하시는 분을 봐서 흥분해서 글을 길게 썻는데 혹시라도 제가 틀렸다면 말씀해주세요... 쪽팔림을 감수하고 반성하면서 나중에 다시 기회잡아 재공부 하겠습니다 ㅠㅠ노엘 버밀리온21.12.30 23:34
-
노엘 버밀리온답변 감사드립니다. 공부하다 보니 용어가 너무 혼동되어서 포인터는 포인터인데 배열은 [정수 포인터]라고 표현하기도 하고......union을 보니 예전 엔지니어 분들은 정말 메모리를 아껴(?)쓰려고 고생 많았겠구나...포인터도 그런 노력에서 나온게 아닐까...짐작만 하고 있습니다. 장문의 답변 감사드립니다.인민배우 심영21.12.31 00:41
루리웹 오른쪽
루리웹 유머
-
하츠네 자쿠
-
회사에서 비프카레
-
이연복의 중화가득도시락
-
사이버포뮬러 오거 애니스타일ver
-
평양냉면 산떠미처럼 주는 곳
-
마눌님께서 마련해주신 도색부스
-
신내동 이정재짬뽕
-
오뚜기 스위트콘 나쵸
-
오랜만에 먹은 양미리
-
완벽한 모양의.누룽지
-
벳푸 교자 전문점 코게츠
-
figma 아이작 클라크
-
철인28호 크롬 오버코팅 도색
-
대충 만들어 먹는 라자냐
-
프레임암즈걸 용호 도색 작업기
-
아쉽지만, 대체불가능한
-
모부삼 이상 콜드워 미만
-
실제 게임에서의 시각적 차이
-
지스타 2024
-
[검은사막] 샤카투의 통 큰 선물
-
[인터넷가입] 비밀지원금 문자받기
-
천만원짜리 수제 목도리.img
-
자신도 모르는 사이 뜨개질 단위가 된 연예인
-
현대미술을 조롱한 목사.jpg
-
바질 키우고 우울증 탈출한 스토리
-
저거저거 나 싫다더니만 또 찾아왔네 ㅋㅋㅋ.jpg
-
갈수록 놀라워지는 ai의 발전
-
정말 오랫동안 게이머들이 기다려온 스토커2 근황
-
이쁜여자가 말걸면 뇌정지 오지 않냐
-
항문 내시경 할때 흥분하면 안되는 이유.
-
사이코패스 1티어급 음주운전자.manhwa
-
PC부문 올해의 E스포츠 선수 ‘페이커‘로 선정
-
호텔키 반납을 깜빡한 사람
-
외할머니가 항상 도깨비밥을 차려주시던 이유.img
-
바람의 나라 클래식에서 현자를 만난 사람.JPG
-
게임업계에서 보는 동덕여대.jpg
-
사람을 배고프게 하는 색상
-
연세대 에타 탈북자 상봉.JPG
-
형이 출장 간 사이에 형수랑 야스 할 계획. jpg
-
지스타 2024
-
[검은사막] 샤카투의 통 큰 선물
-
[인터넷가입] 비밀지원금 문자받기
루리웹 뉴스 베스트
루리웹 유저정보 베스트
PC/온라인
비디오/콘솔
모바일
-
[지스타] 최고의 PC 게이밍 시작점, '스팀 덱' 개발자 인터뷰
-
엠게임, ‘열혈강호 온라인’ 20주년의 발자취
-
[지스타] ‘오딘’을 계승하는 라이온하트의 차기 MMORPG, 프로젝트 Q
-
[지스타] IP의 미래를 책임질, ‘라그나로크 3’와 ‘프로젝트 어비스’
-
[지스타] 전투와 탐험 그리고 건설 - '명일방주: 엔드필드' 한국어 빌드 시연
-
트라이브 나인, 한국 게이머들도 즐겨주기를
-
㈜엔씨소프트 ‘저니 오브 모나크’, 12월 4일(수) 자정 글로벌 출시
-
[지스타] 드래곤소드, 액션과 월드를 조화롭게 개발
-
워크래프트 30년의 역사와 걸어온 길 - '하스스톤' 그리고 'WoW'의 미래를 이야기하다
-
롱런 게임의 상징, 20주년 '열혈강호 온라인' 개발자 인터뷰
-
[지스타] 키타세 & 하마구치, 시대를 초월하기 위한 ‘리메이크’란
-
[지스타] 대단원 향하는 ‘파이널 판타지 7’ 리메이크, 잭스의 다음 활약 기대하길
-
[지스타] 세실 킴, ‘FF9’부터 ‘갓 오브 워’를 지나 ‘스카이’까지
-
‘디아블로 IV’, 블랙 프라이데이 할인 프로모션 진행
-
‘바이오하자드 7 resident evil Gold Edition’ PS5 패키지, 21일(목) 선주문 판매 개시
-
더 게임 어워드 2024(TGA 2024), 후보작 명단 공개
-
Xbox 게임패스 얼티밋, 소유한 게임도 ‘Xbox 클라우드 게이밍 (베타)’로…사용자 고유의 게임 스트리밍
-
Xbox 게임패스, 11월 2차 추가 타이틀 소개
-
‘바이오하자드 BIOHAZARD RE:2’ PS5 패키지, 21일(목) 선주문 판매 개시
-
액션과 시나리오 보강했다, '데블위딘:삿갓' 정식 출시 인터뷰
-
[지스타] 이제 뱀서 대신 발서, 가볍게 즐기기 좋은 ‘발할라 서바이벌’
-
파이널 판타지 XIV 모바일, 개발 진행 중
-
[지스타] 세븐나이츠의 집대성이 될 것, '세븐나이츠 리버스' 시식회
-
[지스타] ‘오딘’을 계승하는 라이온하트의 차기 MMORPG, 프로젝트 Q
-
조선협객전2M, 고려 멸망과 조선의 건국 사이의 판타지
-
[지스타] 김용하 총괄 PD가 말하는 'AI 시대의 이차원 게임 개발'
-
[지스타] IP의 미래를 책임질, ‘라그나로크 3’와 ‘프로젝트 어비스’
-
[지스타] 전투와 탐험 그리고 건설 - '명일방주: 엔드필드' 한국어 빌드 시연
-
귀혼M, ‘귀혼’ 모바일 만들고자 총대 맸다
-
트라이브 나인, 한국 게이머들도 즐겨주기를
루리웹 유저정보 베스트