簡體   English   中英

數組[i] = i ++是否被C ++標准所涵蓋?

[英]Is array[i] = i++ covered by the C++ standard?

我有一個人聲稱這條線不在C ++標准中:

int i(1);
array_of_int[i] = i++;

這個人說它會分配1但我們不知道它是否會在array_of_int[1]array_of_int[2]盡管visual studio和大多數編譯器都在array_of_int[1]

他是對的嗎?

這是未定義的行為。 字面上任何行為都是合法的。

禁止這行代碼的段落是這樣的:

在前一個和下一個序列點之間,對象的存儲值最多只能通過表達式的計算修改一次。 此外,先前的值應該只讀以確定要存儲的值

之間不存在序列中的點a[i]i++和讀取到ia[i]是不用於確定什么值被存儲在的目的i通過i++

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM