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
루리웹 오른쪽
루리웹 유머
-
고전프라 몽키 삼총사 3종세트
-
사무실 이사 근데 취미를 곁들인
-
탕수육과 알짬뽕
-
25년이 넘은 제 한대뿐인 차량
-
직접만든 강아지 떡국&김치&산적
-
키르기스스탄 카페브랜드 KULIKOV
-
명동의 최첨단 IT 카페
-
부산 2박 3일 출장밥
-
미니족을 삶았습니다
-
조이드 AZ 데스사우러 비교
-
연방의 하얗지만은 않은 악마들
-
코미 쇼코 - 포니테일 Ver.
-
MG 에피온(슈투름 운트 드랑)
-
걸프라로 만들어본 미호노 부르봉
-
재패니즈-프렌치 식당
-
아쉽지만, 대체불가능한
-
모부삼 이상 콜드워 미만
-
실제 게임에서의 시각적 차이
-
지스타 2024
-
[검은사막] 이벤트 모아보기
-
[인터넷가입] 비밀지원금 문자받기
-
요즘 사람들 옷 안산대
-
무시무시한 불길을 막는 물의 방패.
-
장사꾼인대 눈치가 없음.img
-
털색 무늬가 굉장한 고양이
-
지역별 도로cctv 화질 비교
-
우리개는 앙물어요
-
헬멧을 정말 쓰기 싫었던 바이킹.jpg
-
주인을 날라차기로 암살하는 댕댕이
-
사람이 RPG에 직격 당하면...
-
7500만 한국인의 심금을 울려버린 중국 어린이의 사연. gif
-
눈사람 부수던 여자의 최후.MP4
-
자기가 이쁜걸 아는 골댕이.gif
-
건물 벽에 락카칠하고 도망간 여자를 찾습니다
-
의외로 일식집 가서 하면 무례한 행위
-
자기 사정 관리 잘하는 헐리우드 배우
-
"ㅋㅋㅋ 사람한테서 폐 떼어내면 당연히 죽지 임마"
-
던전앤드래곤 영화 후기
-
좋아하는 거 두 가지를 합치면 분명 더 좋겠지? gif
-
지스타 2024
-
[검은사막] 이벤트 모아보기
-
[인터넷가입] 비밀지원금 문자받기
루리웹 뉴스 베스트
루리웹 유저정보 베스트
PC/온라인
비디오/콘솔
모바일
-
‘버파’가 스팀에 등장, 버추어 파이터 5 R.E.V.O.(레보)
-
트라이브 나인, 한국 게이머들도 즐겨주기를
-
디레지에와의 본격적 전투 그리고 수 많은 변화들 - 2024 던파 페스티벌 '중천'
-
킨텍스를 점령한 '던페: 중천' + '사운드 아카이브', 풍경
-
롱런 게임의 상징, 20주년 '열혈강호 온라인' 개발자 인터뷰
-
워크래프트 30년의 역사와 걸어온 길 - '하스스톤' 그리고 'WoW'의 미래를 이야기하다
-
㈜넥슨, ‘마비노기 영웅전’ 세 번째 ‘시공간 왜곡’ 콘텐츠 업데이트 지난 21일(목) 진행
-
㈜엔씨소프트 ‘저니 오브 모나크’, 12월 4일(수) 자정 글로벌 출시
-
㈜카카오게임즈 '패스 오브 엑자일 2', '얼리 액세스 서포터 팩 시리즈' 오늘(22일) 출시
-
㈜넥슨, 신작 MOBA 배틀로얄 게임 ‘슈퍼바이브' 국내 오픈 베타 테스트 오늘(21일) 시작
-
3개 액트 + 6개 직업 + 수 많은 콘텐츠 - '패스 오브 엑자일 2' 얼리 액세스 세부 사항 공개
-
‘바이오하자드 7 resident evil Gold Edition’ PS5 패키지, 21일(목) 선주문 판매 개시
-
더 게임 어워드 2024(TGA 2024), 후보작 명단 공개
-
Xbox 게임패스 얼티밋, 소유한 게임도 ‘Xbox 클라우드 게이밍 (베타)’로…사용자 고유의 게임 스트리밍
-
Xbox 게임패스, 11월 2차 추가 타이틀 소개
-
애니메이션 주술회전 전시회 『극장판 주술회전 0』편
-
액션과 시나리오 보강했다, '데블위딘:삿갓' 정식 출시 인터뷰
-
‘메타포: 리판타지오’, PlayStation®Store 25% 할인 오늘(22일) 시작
-
‘바이오하자드 BIOHAZARD RE:2’ PS5 패키지, 21일(목) 선주문 판매 개시
-
‘영웅전설 계의 궤적 -Farewell, O Zemuria- ’ 발매 후 첫 세일 오늘(22일) 시작
-
파이널 판타지 XIV 모바일, 개발 진행 중
-
트라이브 나인, 한국 게이머들도 즐겨주기를
-
조선협객전2M, 고려 멸망과 조선의 건국 사이의 판타지
-
킨텍스를 점령한 '던페: 중천' + '사운드 아카이브', 풍경
-
워크래프트 30년의 역사와 걸어온 길 - '하스스톤' 그리고 'WoW'의 미래를 이야기하다
-
귀혼M, ‘귀혼’ 모바일 만들고자 총대 맸다
-
테일즈런너RPG, 원작의 재미 수집형 RPG로 확장
-
㈜엔씨소프트 ‘저니 오브 모나크’, 12월 4일(수) 자정 글로벌 출시
-
뉴큐브게임즈, ‘밀리언아서 : 링’ 사전등록자 수 100만 명 돌파
-
레벨 인피니트 ‘승리의 여신: 니케’, SSR 캐릭터 ‘플로라’ 업데이트 오늘(21일) 진행
루리웹 유저정보 베스트