int main() {
int arr[2][3] = { {1,2,3},{4,5,6} };
for (int(*nae)[3] : arr) {
}
}
이렇게 해도 되는거 아님?
길이 3인 배열 가리키는 포인터에 주소 넣는다는 뜻이자나여
근데 오류뜸
int*형식의값을 사용하여 int*[3]형식의 엔터티를 초기화 할수 없다고 뜸
arr 배열 첫번째 길이 3짜리 배열 주소가 int* 형식 값인거같구
int(*nae)[3]= int* 이거 한다는 말인거 같은데 왜안댐
해당 댓글은 삭제되었습니다.
ㄴㄴ저거 배열포인턴지 포인터 배열인지 그걸건데
for (int(&nae)[3] : arr)
그냥 이거 되는걸로 외워두는게 맞겟죠 괜히 시간버리는것보다
int (*name)[3]은 array를 가르키는 pointer인데
for문에서 arr을 iterate 하면 arr이 가지고 있는 값들은 int[3] 이라서 두개 타입이 달라서 에러나는거같은데
이 댓글은 게시물 작성자가 삭제하였습니다.
저렇게 포문 쓰면 3짜리 길이가진 배열의 주소가 아니라 그냥 주소값 주는거라 안되는건가보네여 대충 이해간거같애여
내가 알기론 int*nae[3]은 int* 포인터의 배열인디
아니 int*의 배열
괄호치면 배열가리키는 포인터 돼요
몰라 뭐 C마갤 가봐 여긴 C나 C++하는넘들 얼마 읎다
arr를 arr[2]로 바꺼바
근데 이런거 오래해봐야 다 까먹고 쓸일도 거의거의거의거의 없음
무엇보다 아는 사람도 줫가치 햇갈리게 본인도 쓰지 않음
영어만 좀만 할줄알면 구글링해서 3분이면 찾는 문제인데 헬조선에서 태어난게 죄다 ㄹㅇ
int (*nae)[3]는 1차원이 아니고 2차원임 배열을 함수로 넘겨줄때를 생각해봐