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
루리웹 오른쪽
루리웹 유머
-
처음이자 마지막 청약으로 들어온 집
-
북경에서 먹은 양고기 요리들
-
선물용 반찬 만들었어요
-
익산명물 토렴해주는 비빔밥
-
이사하기 전에 찍어둔 장식장
-
회 먹기 - 눈을 움직이는 근육
-
베르세르크] 조드 날개 달아주기
-
CGV 신형만의 회상 4종피규어
-
오토바이타는 토끼
-
4천원 돼지국밥 토종마을
-
칼리버 건담
-
1/1000 뉴 노틸러스호
-
삼성 QLED 98인치를 질렀습니다
-
란마 게임보이 3종 세트
-
풀메카닉스 건담에어리얼
-
기념사업의 끝
-
모든 것을 쥐고 비틀고 흔든다
-
여아들을 위한 감성 영웅담
-
[게임툰] 공주의 변신은 무죄
-
[검은사막] 모험 가이드 대방출!
-
저렇게 높은 자리에 있는 방시혁도
-
남편놈이 거실 테이블이랍시고 이걸 사왔습니다
-
사람이 말을 멈추지 못하게 만드는 모자
-
소름 돋는 이주의 민희진 네이버 운세.jpg
-
기자회견을 본, 아일릿 크레이티브 인스타 스토리
-
루리웹 떡밥 최단기 퇴물.jpg
-
그래도 루리웹이 게임 사이트라고 할수있는 이유.jpg
-
민희진 기자회견중 응우엔씨의 발언
-
90년 초년생과 말년생의 가장 큰 차이류 甲
-
SNL 작가진 초비상!
-
이상해...개콘 너무 이상해!!
-
???: 웃지마 씨1발놈들아
-
넥슨 계정 구매 합법화
-
민희진으로 시끄러운 와중에 김정은
-
실시간 뉴진스 부모님 문자
-
지금 민희진 생방송 채팅창 상황 ㅋㅋ
-
[속보] 민희진 "시발새끼들이 너무 많아가지고" ㄷㄷㄷㄷㄷㄷㄷ.mp4
-
벌크업에 성공한 2년차 헬린이
-
[게임툰] 공주의 변신은 무죄
-
[검은사막] 모험 가이드 대방출!
루리웹 뉴스 베스트
루리웹 유저정보 베스트
PC/온라인
비디오/콘솔
모바일
-
승리의 여신: 니케 1.5주년 특별 방송, 업데이트와 이벤트 소개
-
원작 감성 충만한 ‘페르소나5: 더 팬텀 X’, 모바일 유저 마음도 훔칠까
-
㈜넥슨, LoL 핵심 개발진이 설립한 띠어리크래프트와 ‘프로젝트 로키’ 퍼블리싱 계약
-
넷마블 '아스달 연대기: 세 개의 세력', 개그맨 ‘김수용’ 특별 영상 공개
-
넷마블 ‘나 혼자만 레벨업:어라이즈’, 만화카페 브랜드 ‘놀숲’과 콜라보 이벤트 17일(수) 시작
-
메타, VR/MR 새로운 생태계 구축을 천명… 메타 퀘스트 OS 개방, 구글 플레이 스토어 참여 희망
-
'노 레스트 포 더 위키드' 얼리 액세스 버전 UHD(4K) 플레이 동영상
-
승리의 여신:니케, 1.5주년 업데이트 콘텐츠 소개
-
우주인 미소녀와 함께 지구 정복 러브 코미디, 겨울소녀
-
㈜카카오게임즈, 유명 IP 컬래버부터 이색적인 협업까지 다방면으로 게임 재미 더한다
-
드라마 ‘폴아웃’ 인기, 시즌 2도 제작 확정
-
스텔라 블레이드, 비비 ‘EVE’ 뮤직 비디오
-
아틀러스 RPG의 집대성, ‘메타포: 리판타지오’ 10월 11일 발매 확정
-
스텔라 블레이드, 해외 미디어의 평가는… 게임성은 호평
-
보헤미아의 헨리가 되어, '킹덤 컴: 딜리버런스 2' 최초 공개
-
퍼스트 버서커: 카잔, 2차 FGT 참가자 모집
-
테일즈 오브 더 샤이어: 반지의 제왕 게임, 발표
-
붕괴: 스타레일, ‘마치 세븐스’ 넨도로이드
-
‘엘든 링(ELDEN RING)’, ‘2024 플레이엑스포’에서 특별전 실시
-
'소닉 더 헤지혹' 신작 굿즈, 오늘(22일)부터 예약 시작
-
승리의 여신: 니케 1.5주년 특별 방송, 업데이트와 이벤트 소개
-
원작 감성 충만한 ‘페르소나5: 더 팬텀 X’, 모바일 유저 마음도 훔칠까
-
넷마블 '아스달 연대기: 세 개의 세력', 개그맨 ‘김수용’ 특별 영상 공개
-
가장 쉽고 빠른 '워쉽', 워게이밍 'WoWS: 레전드 모바일' 인터뷰
-
하이브IM, ‘별이되어라2: 베다의 기사들’ 출시 후 첫 업데이트 18일(목) 완료
-
마법소녀 마도카☆마기카 마지아 엑세드라, 발표
-
넷마블 ‘나 혼자만 레벨업:어라이즈’, 만화카페 브랜드 ‘놀숲’과 콜라보 이벤트 17일(수) 시작
-
메타, VR/MR 새로운 생태계 구축을 천명… 메타 퀘스트 OS 개방, 구글 플레이 스토어 참여 희망
-
스마일게이트 ‘에픽세븐’, 인기 애니메이션 IP ‘오버로드’와 콜라보레이션 18일(목) 시작
-
넷이즈게임즈 ‘옥토패스 트래블러: 대륙의 패자’, 출시 반주년 대규모 업데이트 공개
루리웹 유저정보 베스트