Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 포인터를 사용하여 두 행렬을 곱하는 방법은 무엇입니까?

<시간/>

포인터는 다른 변수의 주소를 저장하는 변수입니다.

포인터의 기능

  • 포인터는 메모리 공간을 절약합니다.
  • 메모리 위치에 직접 액세스하기 때문에 포인터의 실행 시간이 더 빠릅니다.
  • 포인터의 도움으로 메모리에 효율적으로 액세스합니다. 즉, 메모리가 동적으로 할당 및 해제됩니다.
  • 포인터는 데이터 구조와 함께 사용됩니다.

포인터 선언, 초기화 및 액세스

다음 진술을 고려하십시오 -

정수량 =179;

메모리에서 변수는 다음과 같이 나타낼 수 있습니다. -

C에서 포인터를 사용하여 두 행렬을 곱하는 방법은 무엇입니까?

선언

포인터 선언은 아래와 같이 할 수 있습니다 -

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인 두 번째 행렬의 요소 입력