#include "stdio.h"
int main(int argc, char const *argv[])
{
printf("Hello const of Goodboy Lee!\n");
// a和b是一个指向int类型的指针,无法通过a来改变指向的空间的值
const int *a;
int const *b;
// c是一个指向int类型的常量指针,无法改变a和b的指向
int c1 = 3;
int * const c = &c1;
int * const d; // 指向NULL, 无法改变指向,顾推荐赋初值
printf("*d = %p\n", d);
int a1 = 1;
int b1 = 2;
int c2 = 31;
a = &a1;
b = &b1;
// d = &c1; // 编译报错,无法重新赋值,需定义时赋初值
// 1. 试图通过a来改变a1的值
// *a = 2; // 编译报错
// 只能通过a1来修改a指向的变量即a1的值
a1 = 100;
printf("*a = %d, a1 = %d\n", *a, a1);
// 2. 试图通过b来改变b1的值
// c = &c2; // 编译报错,无法指向另一个空间
*c = 200;
printf("*c = %d, c1 = %d\n", *c, c1);
return 0;
}
[C_const]指针上的对比
时间: 2024-11-08 05:13:40