1、交换两个整数的值
编写一个函数,使用指针交换两个整数的值。
#include <stdio.h> // 交换两个整数的值的函数 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 5, y = 10; printf("Before swap: x = %d, y = %d\n", x, y); // 调用交换函数 swap(&x, &y); printf("After swap: x = %d, y = %d\n", x, y); return 0; }
2、数组元素求和
编写一个函数,使用指针计算一个整数数组的所有元素的和。
#include <stdio.h> // 计算数组元素和的函数 int array_sum(int *arr, int size) { int sum = 0; for (int i = 0; i < size; i++) { sum += *(arr + i); } return sum; } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); int sum = array_sum(arr, size); printf("Sum of array elements: %d\n", sum); return 0; }
3、字符串长度计算
编写一个函数,使用指针计算给定字符串的长度,不使用标准库函数 strlen
。
#include <stdio.h> // 计算字符串长度的函数 int string_length(char *str) { int length = 0; while (*str != '\0') { length++; str++; } return length; } int main() { char str[] = "Hello, World!"; int length = string_length(str); printf("Length of the string: %d\n", length); return 0; }
4、动态内存分配与释放
编写一个程序,使用指针动态分配内存存储一个整数数组,并释放内存。
#include <stdio.h> #include <stdlib.h> int main() { int n; printf("Enter the number of elements: "); scanf("%d", &n); // 动态分配内存 int *arr = (int *)malloc(n * sizeof(int)); if (arr == NULL) { printf("Memory allocation failed\n"); return 1; } // 输入数组元素 printf("Enter %d integers:\n", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 输出数组元素 printf("Array elements are:\n"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); // 释放内存 free(arr); return 0; }
5、字符串复制
编写一个函数,使用指针复制一个字符串到另一个字符串,不使用标准库函数 strcpy
。
#include <stdio.h> // 字符串复制函数 void string_copy(char *dest, const char *src) { while (*src != '\0') { *dest = *src; dest++; src++; } *dest = '\0'; } int main() { char src[] = "Hello, World!"; char dest[50]; // 调用字符串复制函数 string_copy(dest, src); printf("Source string: %s\n", src); printf("Destination string: %s\n", dest); return 0; }