C语言学习--常量指针与指针常量

指针常量

#include<stdio.h>
#include<string.h>


//常量指针:是一个指针, 定义不用初始化, 能改变指向,但是指向的内容不能被修改
const int* p;


//指针常量: 是一个常量,这个常量的值是一个指针, 定义的时候必须初始化, 并且不能改变指向, 可以改变指向的内容
// const 修饰p1 代表p1是一个常量, p1是什么样的常量呢, 是指针类型的, 指针就是地址, 所以P1的指向是不能改变的, 就是说p1代表的地址不能修改, 但是这个地址里面的内容是可以修改的
int* const p2;

int main()
{
    int a = 10;
    int b = 20;
    int* const p1 = &a; //定义的时候必须初始化

    printf("%d\n", *p1);

    *p1 = 100;
    printf("%d\n", *p1);// 100, 指针常量的内容是允许被修改的

    p1 = &b;//报错, 指针常量的指向是不能被修改的, p1是地址, 这个地址是不能被修改的

}

 

常量指针

#include<stdio.h>
#include<string.h>


//常量指针:是一个指针, 定义不用初始化, 能改变指向,但是指向的内容不能被修改
const int* p;
//首先是一个指针, 但是这个指针指向的内容是一个常量

int main()
{
    const int* p1;

    int a = 10;
    int b = 20;

    p1 = &a;
    printf("*p1:%d\n",*p1);//10
    p1 = &b;
    printf("*p1:%d\n",*p1);//20 指向是可以改变的

    *p1 = 100;//报错, 指针里面的内容是不能改变的

}

 

posted @ 2023-01-08 17:44  朵朵奇fa  阅读(35)  评论(0编辑  收藏  举报