const修饰的指针类型

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

 

int main01()

{

//常量

  const int a=10;

  //a=100;//err不能修改

//通过指针间接修改常量的值

  int*p=&a;

  *p=100;

  printf("%d\n",a);

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

  return 0;

//结果

}

 

int main02()

{

//const修饰指针类型,可以修改指针变量的值,不可以修改指向内存空间的值(const紧挨谁则不能修改谁)

  int a=10;

  int b=20;

  const int*p=&a;

  //*p=100;//err

  p=&b;

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

  return 0;

//结果

}

 

int main03()

{

//const修饰指针变量:可以修改指针指向内存空间的值,不可以修改指针变量的值(const紧挨谁则不能修改谁)

  int a=10;

  int b=20;

  int*const p=&a;

  //p=&b;//err

  *p=20;

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

  return 0;

//结果

}

 

int main04()

{

//const修饰指针类型,修饰指针变量

  int a=10;

  int b=20;

//只读指针;一级指针存储普通变量a的值

  const int* const p=&a;

  //*p = 100;//err

  //p = &b;//err

//通过二级指针指向一级指针对应的空间,存储一级指针p的值;再通过二级指针可以间接修改一级指针的值,也可以修改一级指针指向内存空间的值

  int**pp=&p;

//通过二级指针里的一级指针,修改对应内存空间的值

  * pp=&b;

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

 

//修改一级指针对应的内存空间的值

  **pp=100;

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

  

  return 0;

//结果   

 

 

 

 

 

 

}

posted @ 2020-08-22 17:15  wh19991213  阅读(345)  评论(0编辑  收藏  举报