const使用

2022-10-06  本文已影响0人  arkliu
#include <stdio.h>

int main() {
    // const修饰一个变量为只读
    const int a = 100;
    //a = 20; //error: assignment of read-only variable 'a'

    //指针变量 指针指向的内存 是2个不同的概念
    char buf[] = "hello world..";

    // 从做往右看,跳过类型,看const修饰哪个字符
    // 如果是* 说明指针指向的内存不能改变
    // 如果是指针变量,说明指针的指向不能变
    const char * p = buf; //等价于char const * p1 = buf;
    //p[1] = 'a'; // err
    p = "akdjfkla";
    
    char * const p2 = buf;
    p2[1] = 'b';
    //p2 = "jaksjdf"; //err

    // p3指向不能变,指向的内存也不能变
    const char * const p3 = buf;
    return 0;
}

通过指针可以修改c语言中const修饰变量的值

const int a = 100;
int * b = &a;
*b = 200;
printf("*b = %d  a = %d\n", *b, a);

const_cast

const int n = 5; // int * p = &n; //error: invalid conversion from 'const int*' to 'int*'
 int * p2 = const_cast<int *>(&n); // ok
上一篇 下一篇

猜你喜欢

热点阅读