[英]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++
和讀取到i
在a[i]
是不用於確定什么值被存儲在的目的i
通過i++
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.