cost 80 ms
是 a[i]=y++; a[i++]=y; C 語言中未定義的行為或未指定的行為?

[英]Are a[i]=y++; and a[i++]=y; undefined behavior or unspecified in C language?

當我在尋找表達式v[i++]=i; 為什么要定義行為,突然看到一個解釋是因為表達式存在於程序中的兩個序列點之間,而c標准規定在兩個序列點中副作用發生的順序是不確定的,所以當程序中運行表達式,不確定是先運算++運算符還是先運算=運算符。 我對此感到困惑。 當表達式求值的過程中,是不是應該先用優先級來 ...

當程序與 a+++b 一起打印時,根據詞法分析,錯誤 output for a++ +b

[英]Getting wrong output for a++ +b according to lexical analysis when the program is printed along with a+++b

我寫了下面的C程序來找到a+++b的output 根據詞法分析,我得到的 output 為 7,這是正確的。 除此之外,我編寫了一個單獨的程序來為 a++ +b 找到 output 對於上述程序,我再次將 output 設為 7(根據詞法分析,這再次正確) 但是當我編寫一個程序來打印 a+++b ...

x=*ptr++; 相當於 x=*ptr; 點=點+1;?

[英]x=*ptr++; is equivalent to x=*ptr; ptr=ptr+1;?

在下面的代碼中 當我打印 *ptr 和 **ptr1 時都打印 c 的值,即 4 在這里一切都很好,但是在使用 *ptr++ 初始化 x 之后,我在某處讀到 x=*ptr++ 等價於 x=*ptr; 點=點+1; 如果它是真的,這意味着指針 ptr 指向一個新地址,但仍然 *ptr 和 **ptr ...

`++` 和 `+=` 運算符的行為不同

[英]`++` and `+=` operator are behaving differently

我有一個代碼可以遞歸地打印指向const char的指針,或者我的意思是一個string 。 當我使用+=運算符調用print() function 時,我的代碼工作正常。但是,當我使用++運算符時,我的代碼進入無限循環,只打印'H' 。 這是我的代碼: TRY IT 我知道在任何循環中舉個例子: ...

realloc 中的雙重釋放或損壞(輸出)

[英]double free or corruption (out) in realloc

幾天以來,我一直在嘗試解決我的代碼中的一個問題,但我仍然堅持下去。 我想通過 realloc 在選項卡中插入一個值,但我有一個 memory 泄漏(或其他東西),我不知道為什么。 這是我的代碼: 當我運行我的程序時,出現雙重釋放或損壞(輸出)錯誤。 使用 Valgrind 命令,我有很多“地址 0 ...

在條件語句中與 Java 中的增量運算符混淆

[英]Confusion with increment operators in Java in conditional statements

因此,在考慮 output 時,我的思考過程是這樣的: 對於第一個 if 條件,我認為由於它的后增量運算符,i 值將首先使用然后增加,因此它將執行 if 條件並增加 i 的值,因此打印 output 11 是好的對於第二個 if 條件,我認為由於 tis pre 自增運算符,i 值將首先增加然后使 ...

C中關於Output的說明

[英]Explanation about Output in C

所以我在 C 中有以下代碼片段: 當我運行代碼時, output 返回值33.0000 。 我期待 output 是33.6667 。 我想知道為什么會這樣? 我的計算如下: 在第 2 行中,b 在操作后遞增,因此雖然語句將返回 true (100 <= 25*4),但在此操作后 b 的值將是 ...

使用后置自增運算符將值添加到數組

[英]Using the post-fix increment operator to add values to an array

count[s1.charAt(i) - 'a']++在下面的 for 循環中做了什么? 我在這里看到了一個類似的問題,但我仍然感到困惑。 我以前從未見過這種語法,也找不到很多關於它的信息。 ...

遞歸 function 用於輸出字符串

[英]Recursive function for outputing string

我有以下代碼: 我想退回Janez。 通過遞歸 function。 編譯時我沒有任何錯誤。 當我運行程序時出現錯誤“分段錯誤(核心轉儲)”? 我究竟做錯了什么? ...

Java:操作順序,增量后說明

[英]Java: Order of Operations, Post-Increment Clarification

為什么output是25? 你好! 我知道上面的代碼將打印 25。但是,我想澄清一下 x++ 如何使語句成為 8 + 9 + 8 = 25。 如果我們只這樣打印 x++,則將打印 8,而由於后遞增,x 將在內存中為 9。 但是為什么在代碼1中它最終變成了9呢? 我提前感謝您的時間和解釋! ...

為什么 ++(后增量運算符)不能是左值?

[英]Why can't a++ (post-increment operator) be an Lvalue?

代碼 輸出(如預期) 1.后自增運算符 ( a++ ) 在表中具有最高優先級。 所以它肯定會在賦值運算符( = )之前執行。 並且根據后增量規則,變量a的值只有在執行該語句后才會增加。 那么當后增量運算符( ++ )在賦值運算符( = )之前執行時究竟會發生什么? 2.在C 中,前增 ...

為什么在 i=i++ 之后變量 i 沒有改變?

[英]Why does variable i not change after i=i++?

我不明白 LinkedIn 的 Java 評估測試中的以下問題: 為什么這段代碼會打印 10 次“Hello world.”? 我知道 k++ 的意思是,首先做工作(計算、分配等)然后增加 k。 所以我認為對於 k=k++,k 必須在賦值后遞增: 最后,我希望得到 k=k+1。 例如下面 ...


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