MST

星途 面试题库

面试题:C语言指针常量的基础应用

请解释C语言中指针常量的概念,并编写一段代码示例,展示如何定义一个指向整型变量的指针常量,并通过该指针常量来修改整型变量的值。同时说明如果尝试修改指针常量本身会发生什么情况。
21.6万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

指针常量概念

指针常量是一个常量,它的值是一个指针,一旦初始化后,其指向就不能再改变。也就是说,指针常量在定义时必须初始化,之后其指向的内存地址不能被修改,但可以通过该指针修改其所指向内存中的值。

代码示例

#include <stdio.h>

int main() {
    int num = 10;
    // 定义一个指向整型变量的指针常量
    int * const ptr = &num;

    // 通过指针常量修改整型变量的值
    *ptr = 20;

    printf("num的值: %d\n", num);
    return 0;
}

尝试修改指针常量本身的情况

如果尝试修改指针常量本身,例如:

int main() {
    int num1 = 10;
    int num2 = 20;
    int * const ptr = &num1;
    // 尝试修改指针常量ptr的指向,这会导致编译错误
    ptr = &num2; 
    return 0;
}

上述代码在编译时会报错,因为指针常量一旦初始化,其指向不能改变。不同编译器的报错信息可能有所不同,但大致意思都是不允许对常量指针重新赋值。