千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学c语言 行业资讯
【热点话题】 c语言技术干货 c语言学习教程 c语言学习笔记 c语言面试题 c语言培训问答 c语言培训机构哪些好 c语言职场就业
当前位置:c语言培训  >  零基础学c语言  >  c语言constint*a和int*consta的区别

c语言constint*a和int*consta的区别

来源:千锋教育
发布人:syq
时间: 2023-05-09 11:20:28

  在C语言中,const关键字可以用来修饰指针类型,这时候可以有两种不同的写法:const int* a 和 int* const a。

c语言constint*a和int*consta的区别

  第一种写法 const int* a 表示a是一个指向常量int型变量的指针,a所指向的值不能修改,但是a本身的值可以修改。

  第二种写法 int* const a 表示a是一个指向int型变量的常指针,a所指向的地址不能修改,但是a所指向的值可以修改。

  下面看一个具体的例子来理解它们的区别:

#include <stdio.h>

int main(void)
{
int num1 = 10;
int num2 = 20;

const int* a = &num1; // 定义指向常量的指针,指针所指向的值不能修改
a = &num2; // 可以修改指针所指向的地址

int* const b = &num1; // 定义常指针,指针所指向的地址不能修改
*b = 30; // 可以修改指针所指向的值

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

return 0;
}

   运行结果:

a=0x7ffc02aeedec, *a=20
b=0x7ffc02aeedf0, *b=30

   从上面的例子中可以看出,当定义指向常量的指针时,指针所指向的值不能修改,但指针本身的值是可以修改的;当定义常指针时,指针所指向的地址不能修改,但指针所指向的值是可以修改的。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>