배열로도 받을수 있는 이유는 뭐야?
C에서 함수 매개변수로 포인터를 요구할때
익명(211.46)
2021-09-21 00:52
추천 0
댓글 5
다른 게시글
-
파인만 보고 반성 많이 하게 되네 ㅇㅅㅇ [5]익명(59.13) | 21.09.21추천 0
-
가끔 북한 관련 헛소리 믿는거 보면 헛웃음 나오는게 많은데 ㅇㅅㅇ [5]♨2.87™(roidz) | 21.09.21추천 1
-
결국 또 해냈다 [3]헬마스터(supersaver) | 21.09.21추천 0
-
모던 리액트 쓰면 바보되는것같음.익명(114.203) | 21.09.21추천 0
-
학식충 파이썬 기초 문제 질문 좀 아........ [1]익명(211.106) | 21.09.21추천 0
-
리액트가 왜 라이브러리인지 깨달았다.익명(114.203) | 21.09.21추천 0
-
초딩때 넷버스로 상대방 변태만든썰익명(183.102) | 21.09.21추천 7
-
어른되면 중고등학생때랑 눈높이가 달라지냐? [3]익명(61.73) | 21.09.21추천 0
-
비온다 [1]만남의광장(aerohong) | 21.09.21추천 0
-
js 부스트코스 강좌 아무거나 추천좀 [15]익명(175.123) | 21.09.21추천 0
배열도 포인터니까 그런거 아님?
모든것은 포인터다
배열자체를 넘기는건 안되고 배열 첫원소의 주소(주소=포인터) 넘기는거니까 가능. int func(int a[]); 저게 배열을 받는게 아니고 int *a 랑 같은 표현임걍
뭐가 됐든 그냥 주소만 넘기면 받는쪽에서 좆대로 할 수 있어
첫주소가 아니어도 되지. func(&a[3]) 이런식으로 넘겨도 됨. 위에 말한대로 뭐가 됐든 주소만 넘기면 받는쪽에서 맘대로 할 수 있음. 굳이 차이를 말하자면, 배열로 넘기면 새로운 값을 할당할 수 없게 됨. ex) int func(int a[]) 이런식이면 함수안에서 a = &b; 이런식으로 쓸수 없지만, 포인터로 받으면, 함수 안에서 a = &b; 처럼 새로운 주소를 할당할 수 있음.