2 차원 배열과 포인터에 대한 약간의 이해

#include <stdio.h>
int main(void)
{
    
    
    
    int num[4][2];
    num;
    num[0];
    return 0;
}

num과 num [0]의 차이점에 대해 논의하겠습니다. 내 분석에 따르면 둘 다 주소를 나타내지 만 num [4] [2]를 사용하여 시각화하고 이해합니다.

여기에 사진 설명 삽입
이것은 공간에서 2 차원 배열의 저장 모드 여야합니다.

num
num [0]
저장된 첫 번째 요소의 주소는 num [0] [0]의 주소이지만 둘은 다른 것을 나타냅니다.

num, num + 1, num + 2
는 두 int 유형의 크기를 나타내는 주소입니다. 즉,
num [0], num [1], num [2]는이 행의 첫 번째 요소 주소를 나타냅니다. int 유형의 주소
그러나 & num [0]은 num과 같습니다. 배열을 나타내는이 행을 나타냅니다.

2 차원 배열은 2 개의 배열로 간주 될 수 있으며, 행이 먼저 액세스 된 다음 열에 액세스됩니다. 먼저 행 배열을 입력 한 다음 행 배열에 저장된 주소에 따라 열 배열을 입력합니다. 열 배열에는 숫자 또는 요소 만 저장됩니다.

num은 보조 포인터입니다.
첫 번째 * num은 솔루션 응용 프로그램을
나타내고이 배열 행을 입력 한 다음 응용 프로그램 num을 다시 풀고 배열 의 첫 번째 요소 주소에 저장된 숫자를 추출하거나
( ( num + 0) +0), 내부 괄호는 괄호 밖에있는 배열의 첫 번째 요소가 num [0] [0]과 동일한 의미를 갖는 첫 번째 요소입니다.

이것은 주로 메모리에서 2 차원 배열의 저장 모드를 논의하기위한 것입니다.
오류가 있으면 조언을 해주십시오.
더 있습니다.
고급 포인터 -1

추천

출처blog.csdn.net/weixin_52199109/article/details/111415765