분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
옵션 |
|
안녕하세요. 이번에 입학한 대학교 1학년 새내기입니다. 궁급한게 생겨 질문을 하려고합니다.
#include <stdio.h>
int f(int **p){
int result;
result = p[2][1]+p[1][3];
return result;
}
int main(void) {
// 입력
int x[4][4]={{10,12,33,34},{51,67,56,78},{18,44,35,33},{21,61,43,77}};
// 처리
int ans = f(x);
// 출력
printf("%d",ans);
}
#include <stdio.h>
int f(int p[4][4]){
int result;
result = p[2][1]+p[1][3];
return result;
}
int main(void) {
// 입력
int x[4][4]={{10,12,33,34},{51,67,56,78},{18,44,35,33},{21,61,43,77}};
// 처리
int ans = f(x);
// 출력
printf("%d",ans);
}
근데 이렇게 바꾸니까 잘 실행되더라고요. 포인터를 이용하다가 만들어진것이 배열이라고 교수님깨 들었습니다. C라는 배열을 만들면 C라는 포인터 인수가 만들어지고 이는 C에 저장될 값들 중 가장 첫번째인 값의 주소가 들어가고, 따라서 C[i]와 *(C+i)의 혼용이 가능한 것이라고요. 그런데 왜 위처럼 코딩을 하면 작동을 안할까요?
출처 | 본인 |
죄송합니다. 댓글 작성은 회원만 가능합니다.