【C语言】常量和指针

常量

常量一般这样定义:

// 不加分号
#define LOVE 520
#define A 'a'
#define PI 3.14

const 修饰的指针变量

const 靠近谁就锁定谁,靠近*p,就锁定*p

int num = 520;
int const *p = # # // 锁定 *p 为只读,p 能变
int * const p =  # # // 锁定 p 为只读,*p 能变

const 修饰的指针变量有三种常见情况

地址值能变,值不能变

#include <stdio.h>

int main() {

    int num = 520;
    int const *p = &num; # // 锁定 *p 为只读,p 可变

    printf("p = %d \n", *p); // 解引用指针变量,获取值
    p = (const int *) 1314;  // 等价于 p = 1314;  重新赋值
    printf("p = %d \n", p);

    return 0;
}

mark

地址值不能变,值能变

#include <stdio.h>

int main() {

    int num = 520;
    int *const p = &num; # // 锁定 p 为只读,*p 可变

    printf("p = %d  %p \n", *p, p); // 解引用指针变量,获取值
    *p = 1314;  // 重新赋值
    printf("p = %d %p \n", *p, p);

    return 0;
}

mark

地址值 & 值 都不能变

实际中很少用到

int main() {

    int num = 520;
    const int * const p = &num; # // 锁定 p 、*p 为只读

    return 0;
}
发表评论 / Comment

用心评论~