[C_const]指针上的对比

#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;
}

posted @ 2014-08-02 16:21  It's_Lee  阅读(146)  评论(0编辑  收藏  举报