C Online Compiler
Example: Matrix Transpose using Pointers in C
C
C++
C#
Java
Python
PHP
main.c
STDIN
Run
// Matrix Transpose using Pointers #include <stdio.h> #define ROWS 3 #define COLS 3 int main() { int matrix[ROWS][COLS] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int transpose[COLS][ROWS]; // Transposed matrix will have COLS rows and ROWS columns // Step 1: Print the original matrix printf("Original Matrix:\n"); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { // Accessing matrix[i][j] using pointer arithmetic printf("%d ", *(*(matrix + i) + j)); } printf("\n"); } // Step 2: Calculate the transpose using pointers for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { // Assign element at matrix[i][j] to transpose[j][i] // Original: *( *(matrix + i) + j ) points to matrix[i][j] // Transposed: *( *(transpose + j) + i ) points to transpose[j][i] *(*(transpose + j) + i) = *(*(matrix + i) + j); } } // Step 3: Print the transposed matrix printf("\nTransposed Matrix:\n"); for (int i = 0; i < COLS; i++) { // Iterate COLS for rows of transpose for (int j = 0; j < ROWS; j++) { // Iterate ROWS for columns of transpose // Accessing transpose[i][j] using pointer arithmetic printf("%d ", *(*(transpose + i) + j)); } printf("\n"); } return 0; }
Output
Clear
ADVERTISEMENTS