최대 1 분 소요

#ifdef __________________

2차원배열을 포인터로 표현하는 방법에 대한 고찰을 해보자.

#endif //##################

#include

int main(int argc, char *argv[])
{
int tmp[10][10]={0};
int i=0;
int j=0;
int count=0;\

for (i=0;i<10;i++){
for (j=0;j<10;j++){

tmp[i][j]=count;
count++;
// printf(“%c
“,tmp[i][j]);
}
}

for(i=0;i<1;i++){
for(j=0;j<10;j++){
printf(“tmp[i][j] tmp[%d][%d] -» %d
“, i, j, tmp[i][j]);\

printf(“*(tmp[i]+j) *(tmp[%d]+%d) -» %d
“, i, j, *(tmp[i]+j));
printf(“*(*(tmp+i)+j) *(*(tmp+%d)+%d) -» %d
“, i, j, *(*(tmp+i)+j));
printf(“*(i[tmp]+j) *(%d[tmp]+%d) -» %d
“, i, j, *(i[tmp]+j));
//printf(“j[i][tmp] %d[%d][tmp] -» %d
“, i, j, j[i][tmp]);
printf(“j[i[tmp]] %d[%d[tmp]] -» %d
“, i, j, j[i[tmp]]);

printf(“tmp[j][i] tmp[%d][%d] -» %d
“, j, i, tmp[j][i]);
printf(“*(tmp+i)[j] *(tmp+%d)[%d] -» %d
“,i,j,*(tmp+i)[j]);
printf(“**(tmp+i+j) **(tmp+%d+%d) -» %d

“,i,j,**(tmp+i+j));
// printf(“test %s
“);
// printf(“%d %s
“,i,*(tmp+i)[0]);
}
}
}

#ifdef ___________

결과는 전혀 엉뚱하게 나왔다..
우선… tmp[i][j]==*(tmp[i]+1)이고
*(tmp+i)[j]==**(tmp+i+1); 이라고 나왔지만 더 확인해봐야겠다.
#endif
#ifdef ___________
2차원 배열을 사용할때….
만약 tmp[i][j]일때

tmp[i][j]==*(tmp+i)[j]
==*(tmp[i]+j)
== *(*(tmp+i)+j)
== **(tmp+i+j) ??같다 OK 앗싸… 음 그럼 역시 우선순위는 + > * 인것 같다. 푸헬헬
==»>? 다시 생각해봐야것다.. 좀 이상하다. 다른 데이터를 집어놓구 비교해 보자 꾸나 얍….

tmp[i] = *(tmp+i)

#endif
#ifdef ___

다시 해결하고 싶은것은.
tmp[i][j]값에서 tmp[i]의 열을 다 출력하는것은 어떻게 짜면될까?라는 생각을 해보고
그것을 해결하고 싶어 진다. 푸헐..
#endif\