포인터는 다른 변수의 주소를 저장하는 변수입니다.
포인터의 기능
- 포인터는 메모리 공간을 절약합니다.
- 메모리 위치에 직접 액세스하기 때문에 포인터의 실행 시간이 더 빠릅니다.
- 포인터의 도움으로 메모리에 효율적으로 액세스합니다. 즉, 메모리가 동적으로 할당 및 해제됩니다.
- 포인터는 데이터 구조와 함께 사용됩니다.
포인터 선언, 초기화 및 액세스
다음 진술을 고려하십시오 -
정수량 =179;
메모리에서 변수는 다음과 같이 나타낼 수 있습니다. -
선언
포인터 선언은 아래와 같이 할 수 있습니다 -
Int *p;
'p'는 다른 정수 변수의 주소를 담고 있는 포인터 변수라는 뜻입니다.
초기화
주소 연산자(&)는 포인터 변수를 초기화하는 데 사용됩니다.
예를 들어,
int 수량 =175;int *p;p=&qty;
포인터를 통한 변수 접근
변수의 값에 접근하기 위해 간접연산자(*)를 사용한다.
예시
다음은 포인터를 사용하여 두 행렬을 곱하는 C 프로그램입니다 -
#include#define ROW 3#define COL 3/* 함수 선언 */void matrixInput(int mat[][COL]);void matrixPrint(int mat[][COL]);void matrixMultiply (int mat1[][COL], int mat2[][COL], int res[][COL]);int main() { int mat1[ROW][COL]; int mat2[ROW][COL]; 정수 제품[ROW][COL]; printf("크기가 %dx%d인 첫 번째 행렬의 요소를 입력하세요\n", ROW, COL); 매트릭스입력(매트1); printf("크기가 %dx%d인 두 번째 행렬의 요소를 입력하세요\n", ROW, COL); 매트릭스입력(매트2); matrixMultiply(mat1, mat2, product); printf("두 행렬의 곱은 \n"); 매트릭스프린트(제품); return 0;} 무효 matrixInput(int mat[][COL]) { int 행, 열; for (row =0; row |
출력
위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -
크기 3x32 3 12 5 62 6 8크기가 3x31 2 12 3 45 6 7인 두 번째 행렬의 요소 입력