c语言constint*a和int*consta的区别
在C语言中,const关键字可以用来修饰指针类型,这时候可以有两种不同的写法:const int* a 和 int* const a。
第一种写法 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
相关推荐HOT
更多>>c语言void指针及使用注意事项
`void` 指针是一种特殊的指针类型,它可以保存任何类型的指针,并且可以通过类型转换将其转换为任何类型的指针。`void` 指针的用法如下:1. `vo...详情>>
2023-05-09 11:49:25c语言puts函数用法
puts函数用于将字符串输出到终端并自动换行。需要注意的是,puts函数只能输出字符串,不能输出数值类型的数据。如果想要输出数值类型数据,需要...详情>>
2023-05-09 11:41:57c语言printf函数和scanf函数
C语言中的printf函数和scanf函数分别用于输出和输入数据。下面分别介绍它们的用法。printf函数用于将数据输出到终端。其中,输出格式为一个字符...详情>>
2023-05-09 11:39:46c语言pow()函数:求x的y次方的值
C语言中的pow()函数用于求x的y次方的值,头文件为math.h,函数原型为:其中,x和y都为double类型。pow()函数返回的是x的y次方的值,即x^y。需要...详情>>
2023-05-09 11:35:11c语言const的用法,c语言常量定义
C语言中const关键字用于定义常量。常量是值不可改变的量,一旦定义就不能被修改,主要有以下两种写法:1. 使用#define定义常量:2. 使用const定...详情>>
2023-05-09 11:32:26c语言培训问答更多>>
新什么样的C语言培训机构好?
新C语言培训一般要学多久?
新C语言培训都学什么内容?
新C语言培训后的工作方向有哪些?
新C语言培训后能找到工作吗?
新C语言培训班好吗?
新C语言培训注意事项
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区