Module 9: Con trỏ

Con trỏ trong C

Khai báo và sử dụng

int x = 10;
int *ptr = &x;   // ptr tro den dia chi cua x
printf("%d", *ptr); // 10 (toan tu dereference)

Pointer Arithmetic

int arr[3] = {10, 20, 30};
int *p = arr;
printf("%d", *(p + 1)); // 20

Con trỏ và mảng

int arr[3] = {1, 2, 3};
int *p = arr;
for (int i = 0; i < 3; i++)
    printf("%d ", *(p + i));

NULL pointer

int *p = NULL;
if (p != NULL) {
    *p = 10;
}

Ví dụ: Hoán đổi giá trị

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}