0
点赞
收藏
分享

微信扫一扫

const 的使用

Gascognya 2022-06-21 阅读 61
#include <stdio.h>
int main()
{
char array[] = {1, 2, 3};
char* p1 = &array[0]; // int* p1 = array
printf("p1=%p\n", p1); // p1=000000000061FDF5
printf("array+1=%p &array+1=%p\n", array+1, &array+1); // array+1=000000000061FDF6 &array+1=000000000061FDF8

const char* p2 = &array[1];
// *p2 = *p2 + 1; // error: assignment of read-only location '*p2'
p2 = &array[2]; // OK
char* const p3 = &array[1];
*p3 = *p3 + 1; // OK
// p3 = &array[2]; // error: assignment of read-only variable 'p3'
const char* const p4 = &array[1];
// *p4 = *p4 + 1; // error: assignment of read-only location '*p4'
// p4 = &array[2]; // error: assignment of read-only location '*p4'

}

前者,const 限制 *p2 内容;后者 const 限制 p3 的内容。
const 的使用_#include

C const 和 C++ const

C 和 C++ 中 const 用法很相似,但是并不是完全相同,

  • 区别之一:C++ 允许在声明数组大小时候使用 const 参数,而 C 不允许。
  • 区别之二:C++ 指针使用更加严格。
const int y;
const int * p2 = &y;
int * p1;
p1 = p2; // C++不允许这样做,但是C可能只是给出警告


举报

相关推荐

0 条评论