C++ 数组初始化注意事项

源码

int main() {
  int cards[4] = {1,2,3,4};
  int hands[4];
  hands = cards; // 报错,表达式必须是可修改的左值
  cards++; // 报错,表达式必须是可修改的左值
  cards = cards +1; // 报错,表达式必须是可修改的左值
  int *p = cards; // 退化为指针

  std::cout << sizeof(cards) << std::endl; 
}
  • 数组名作为赋值语句左侧时,只是一个地址常量,不会退化为指向首元素的指针,所以无法被修改。
  • 作为sizeof的操作数时,也不会退化
posted @ 2025-12-10 16:10  只A有缘人  阅读(0)  评论(0)    收藏  举报