1. 这段代码定义了一个名为swap的函数,用于交换两个整型变量的值。函数使用指针传递变量的地址,通过指针操作来实现变量值的交换。在main函数中,定义了两个整型变量ab,并分别赋值为510。接着,调用swap函数,并将ab的地址传入函数中,实现变量值的交换。最后输出交换后的结果。
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int a = 5, b = 10;
    printf('before swap: a = %d, b = %d\n', a, b);
    swap(&a, &b);
    printf('after swap: a = %d, b = %d\n', a, b);
    return 0;
}
  1. 这段代码使用动态内存分配函数malloc,它可以在程序运行时动态地分配一定大小的内存空间。代码中定义了一个指针变量p,通过malloc函数分配了4个字节的内存空间,并将指针p指向该空间。然后将10赋值给该空间中的整型变量,并输出这个变量的值。最后使用free函数释放了动态分配的内存空间。
int main() {
    int *p;
    p = (int *)malloc(sizeof(int)); // 分配4个字节的内存空间
    *p = 10;
    printf('%d\n', *p);
    free(p); // 释放内存空间
    return 0;
}
  1. 这段代码定义了一个名为printArray的函数,用于打印一个整型数组。函数使用指针传递数组的地址,通过指针操作来访问数组元素。在main函数中,定义了一个整型数组arr,并初始化了数组的值。接着,计算出数组的长度,调用printArray函数并将数组的地址和长度传入函数中,实现数组的打印。
void printArray(int *arr, int len) {
    for (int i = 0; i < len; i++) {
        printf('%d ', *(arr + i));
    }
    printf('\n');
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int len = sizeof(arr) / sizeof(int);
    printArray(arr, len);
    return 0;
}
  1. 这段代码定义了一个名为createArray的函数,用于创建一个长度为len的整型数组,并将数组中的元素依次赋值为0len-1。函数使用动态内存分配函数malloc,在函数中分配了一定大小的内存空间,并将指针arr指向该空间。然后使用循环依次将数组中的元素赋值为0len-1,最后返回这个数组的指针。在main函数中,调用createArray函数,并将返回的指针赋值给指针变量p,然后使用循环输出这个数组的值。最后使用free函数释放了动态分配的内存空间。
int *createArray(int len) {
    int *arr = (int *)malloc(sizeof(int) * len);
    for (int i = 0; i < len; i++) {
        *(arr + i) = i;
    }
    return arr;
}

int main() {
    int *p = createArray(5);
    for (int i = 0; i < 5; i++) {
        printf('%d ', *(p + i));
    }
    printf('\n');
    free(p);
    return 0;
}
C语言代码解释:交换变量、动态内存分配、数组传递和函数返回值

原文地址: https://www.cveoy.top/t/topic/mGER 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录