MST

星途 面试题库

面试题:C语言中间接访问操作符应用场景

请举例说明在C语言中,间接访问操作符(*)通常在哪些编程场景下会被使用,并编写一段简单代码展示其用法。
40.8万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

常见编程场景

  1. 指针变量声明与解引用:用于声明指针变量,并且在需要访问指针所指向内存空间的值时使用。例如,在动态内存分配后,通过指针来操作分配的内存。
  2. 函数参数传递指针:在函数间传递指针参数时,调用函数可以通过解引用指针来修改调用者提供的变量值,实现“按引用传递”的效果。
  3. 操作数组元素:通过指针运算来访问数组元素,指针可以指向数组首地址,通过间接访问操作符配合指针偏移来访问数组中的各个元素。

示例代码

#include <stdio.h>

// 函数声明,通过指针修改变量值
void changeValue(int *ptr) {
    *ptr = 100;
}

int main() {
    // 声明一个整型变量
    int num = 50;
    // 声明一个指向整型的指针,并将其指向num
    int *ptr = &num;

    // 解引用指针,输出num的值
    printf("通过指针间接访问num的值: %d\n", *ptr);

    // 调用函数,通过指针修改num的值
    changeValue(ptr);
    // 再次输出num的值
    printf("调用函数修改后num的值: %d\n", num);

    // 使用指针操作数组
    int arr[5] = {1, 2, 3, 4, 5};
    int *arrPtr = arr;
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] 的值: %d\n", i, *(arrPtr + i));
    }

    return 0;
}