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
루리웹 오른쪽
루리웹 유머
-
딸들을 위해서 975km 운전 코스
-
연차썼는데 상사들이 찾아옴
-
마파두부 사랑 기억하고 있습니까
-
사무라이 갑옷(당세구족) 구입
-
마누라와 굴파티
-
버거킹 신메뉴 불맛 더블치즈버거
-
판다 익스프레스
-
안락삶 당하는 루이
-
사포로 3박 4일 먹부림
-
MG 제타버카입니다
-
포도포도한 동네
-
휘케바인 mk.3 + AM건너 커스텀컬러
-
코토부키야 미소녀 시리즈 셸미
-
테라리움 같은거 해봄
-
다다닭 카레라이스
-
사막과 맛있는 메카 전투
-
아쉬움 남긴 과거에 보내는 마침표
-
고전 명작 호러의 아쉬운 귀환
-
[게임툰] 자신만의 용을 찾는 여행
-
[검은사막] 모험 가이드 대방출!
-
PC방 메뉴판 근황.jpg
-
K-지명발음
-
백종원 신메뉴 근황
-
당뇨환자가 먹으면 안되는 음식.mp4
-
어벤져스 영화의 교훈.jpg
-
차도로 미끄러지는 유모차.gif
-
제로 음료지만 당뇨환자는 마시면 안되는거
-
70~80년대를 대표하는 미국 유명배우가 망가진 이유
-
묘권쓰는 고양이
-
일러스타 페스 추가입장문
-
바이킹들이 무기에 룬문자 새긴이유
-
기린은 목이 약점이야
-
양손가득 고양이
-
딸치다 부모님한테 걸려서 축하받은 썰
-
팩트) 봉준호감독이 크리스 에반스를 안쓰는 이유
-
꼭 한 메뉴만 패는 단골들
-
피라미드 내부.gif
-
누가봐도 신뢰 가능한 피시방 광고
-
[게임툰] 자신만의 용을 찾는 여행
-
[검은사막] 모험 가이드 대방출!
루리웹 뉴스 베스트
루리웹 유저정보 베스트
PC/온라인
비디오/콘솔
모바일
-
5월에 출시될 PC·모바일 게임 목록
-
㈜넥슨 ‘던전앤파이터’ 신규 ‘안개신 레이드’ 최상위 콘텐츠 위엄 입증
-
넷마블 신작 MMORPG '아스달 연대기: 세 개의 세력', 신규 광고 진행 중
-
인텔 아크가 탑재된 첫 UMPC 게임기, 'MSI 클로' 체험
-
신세계아이앤씨, MSI와 휴대용 게임 PC ‘클로’ 유통 계약 체결…4일(토)부터 국내 첫 판매
-
㈜엔씨소프트, 가정의 달 맞아 ‘어린이날’ 이벤트 진행 중
-
펄어비스 ‘[검은사막 X 빌리엔젤] 리얼 다크 초코 케이크’ 출시
-
㈜엠에스아이코리아, 게이밍 UMPC '클로' 3일(금) 저녁 8시 잇섭의 핫IT슈 방송 진행
-
㈜넥슨, 21주년 맞은 ‘메이플스토리’, 4월 대규모 업데이트와 유저 소통으로 인기 상승세
-
㈜엔씨소프트, 6년 연속 ‘인디크래프트’ 후원사로 참가
-
5월에 출시되는 한국어 콘솔 게임 목록
-
5월 PS Plus 에센셜 게임, 한국 지역 대상 타이틀 4종
-
팀하라(TEAM HARA), ‘스텔라 블레이드’의 ‘이브’ 코스프레 화보 공개 및 네이버 치지직채널에서 게임 시연
-
스트리트 파이터 6, 고우키의 ‘순옥살’ 커맨드에 대하여
-
나 혼자만 레벨업:어라이즈, 연내 스팀·내년 콘솔로 확장
-
스타워즈: 헌터 월드, 6월 4일 발매일 결정
-
새로운 시즌은 아이템 체계 변화부터 시작된다, 디아블로 4 신규 시즌 인터뷰
-
스트리트 파이터 6, ‘고우키’가 Year 1의 대미를 장식
-
브이라이징, 정식 ‘1.0 버전’ 콘텐츠 내용
-
Xbox 게임패스, 5월 1차 추가 타이틀 소개
-
5월에 출시될 PC·모바일 게임 목록
-
어쌔신 크리드 미라지, 6월 10일 iOS 상륙
-
라인게임즈, ‘창세기전 모바일: 아수라 프로젝트’ 스페셜 복귀 이용자 이벤트 개최
-
라이브루리, 버튜버 메카메이드 '아렌' 데뷔
-
퍼펙트 월드 게임즈, ‘페르소나5: 더 팬텀 X’ 1.1 버전 대규모 업데이트
-
넷마블 신작 MMORPG '아스달 연대기: 세 개의 세력', 신규 광고 진행 중
-
㈜엔씨소프트, 가정의 달 맞아 ‘어린이날’ 이벤트 진행 중
-
펄어비스 ‘[검은사막 X 빌리엔젤] 리얼 다크 초코 케이크’ 출시
-
㈜카카오게임즈, 모바일 RPG ‘가디언 테일즈’ 악몽 월드 14 ‘데몬샤이어’ 2일(목) 업데이트 완료
-
A PLUS JAPAN INC ‘스트리트 파이터: 듀얼’, ‘몬스터 헌터’와 콜라보레이션 진행
루리웹 유저정보 베스트