Files
common/examples/pointers.cm

39 lines
918 B
Plaintext
Raw Permalink Normal View History

2026-03-14 14:14:37 -04:00
// Public domain / CC0. Use freely for any purpose. RoyR 2026
// pointers.cm - Pointer operations
// Demonstrates: pointers, pointer arithmetic, dereferencing
void printf(uint8 *fmt);
void swap(int32 *a, int32 *b) {
int32 temp = *a;
*a = *b;
*b = temp;
}
int32 main(void) {
int32 x = 42;
int32 y = 17;
printf("Before swap: x=%d, y=%d\n", x, y);
swap(&x, &y);
printf("After swap: x=%d, y=%d\n", x, y);
// Pointer arithmetic with arrays
int32 arr[5] = { 10, 20, 30, 40, 50 };
int32 *ptr = arr;
printf("\nArray traversal with pointer arithmetic:\n");
for (int32 i = 0; i < 5; i = i + 1) {
printf("arr[%d] = %d (via pointer: %d)\n", i, arr[i], *(ptr + i));
}
// Pointer to pointer
int32 value = 99;
int32 *p1 = &value;
int32 **p2 = &p1;
printf("\nPointer to pointer: **p2 = %d\n", **p2);
return 0;
}