常量 int = int 常量?

新手上路,请多包涵

例如,是

int const x = 3;

有效代码?

如果是这样,它的含义是否与

const int x = 3;

?

原文由 user383352 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 397
2 个回答

它们都是有效代码并且它们都是等价的。对于指针类型,尽管它们都是有效代码但不等价。

声明 2 个不变的整数:

 int const x1 = 3;
const int x2 = 3;

声明一个指针,其数据不能通过指针改变:

 const int *p = &someInt;

声明一个不能被改变为指向其他东西的指针:

 int * const p = &someInt;

原文由 Brian R. Bondy 发布,翻译遵循 CC BY-SA 2.5 许可协议

// 1.

int x1 = 1;
int x2 = 2;

const int* p = &x1;
//*p = 3;          // variable data is CAN NOT BE changed through pointer
p = &x2;           // pointer CAN POINT to other variable

cout << *p << endl;   // OUTPUT: 2


// 2.

int y1 = 1;
int y2 = 2;

int* const t = &y1;
*t = 3;            // variable data is CAN BE changed through pointer
//t = &y2;         // pointer CAN NOT POINT to other variable

cout << *t<<endl;   // OUTPUT: 3

原文由 Zarina Abdibaitova 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题