이제 C 언어의 포인터에 대해 정리해 보자 (기본편)

1653 단어 C포인터
최근 Go 언어에서도 포인터를 사용하고 있음을 알았으므로 응용할 수 있는지는 모르겠습니다.
이전에 사용했던 C 언어의 포인터에 대해 정리해 보자.

원래 포인터란?



변수의 메모리 주소를 포함하는 변수입니다.
변수와 함수는 메모리에 저장되고, 그 위치가 어디인지를 나타내는 정보를 가지고 있는 변수가 포인터 변수가 됩니다.

○ 예 : 변수 선언을했을 때의 주소와 값의 관계
/* 変数宣言 */
int A;
/* ポインタ変数の宣言 */
int* pA;
/* 変数に値を代入 */
A = 10;
/* ポインタにAのアドレスを格納 */
pA = &A;

위의 내용이라면 다음과 같은 형태로 값이 메모리에 저장됩니다.

위 그림의 경우는 변수에 값을 저장한 단계에서 0xXXXX4~0xXXXX7 에 '10'이 저장되어 있습니다 (여기서 복수의 주소가 확보되어 있는 것에 대해서는 후속으로 해설합니다)
예에서는 포인터 변수 '''pA'''에 '''A'''의 주소를 대입하고 있으므로 '''pA'''에는 0xXXXX4※덧붙여서 4 주소분 확보되고 있는 것은 int형의 사이즈가 4byte 때문입니다
변수의 형태 사이즈에 대해서는 포인터를 기억하는데 있어서는 반드시 통과하는 길이므로 후속의 기사(주의점편)에서 자세하게 설명해 갑니다.

포인터의 기본 사용법



포인터를 사용하여 메모리의 주소를 확인할 수 있으며, 주소의 값을 조작할 수 있습니다.

○포인터의 각 조작 방법
/* 変数のアドレスを取得 */
/* &を変数の先頭につけると対象変数のアドレスを取得することができます */
/* 以下の場合だとポインタ変数pAにアドレスを代入 */
pA = &A;
/* ポインタ先(アドレス先)にアクセスする */
/* *を変数の先頭につけると変数に格納されたアドレス先にアクセスすることができます */
/* 以下の場合だとポインタ変数pAに格納されたアドレス先の値を20に書き換えています */
*pA = 20;

위를 그림으로하면 다음과 같은 형태입니다.

여기까지가 포인터의 기본이 됩니다.
여기에서 한층 더 포인터의 주의점이나 응용편 등 기사로서 계속해 나가면 된다고 생각하고 있습니다.

좋은 웹페이지 즐겨찾기