![](/img/trans.png)
[英]Are a[i]=y++; and a[i++]=y; undefined behavior or unspecified in C language?
當我在尋找表達式v[i++]=i; 為什么要定義行為,突然看到一個解釋是因為表達式存在於程序中的兩個序列點之間,而c標准規定在兩個序列點中副作用發生的順序是不確定的,所以當程序中運行表達式,不確定是先運算++運算符還是先運算=運算符。 我對此感到困惑。 當表達式求值的過程中,是不是應該先用優先級來 ...
[英]Are a[i]=y++; and a[i++]=y; undefined behavior or unspecified in C language?
當我在尋找表達式v[i++]=i; 為什么要定義行為,突然看到一個解釋是因為表達式存在於程序中的兩個序列點之間,而c標准規定在兩個序列點中副作用發生的順序是不確定的,所以當程序中運行表達式,不確定是先運算++運算符還是先運算=運算符。 我對此感到困惑。 當表達式求值的過程中,是不是應該先用優先級來 ...
[英]Prefix and postfix operator
我發現后綴增量的優先級高於前綴。 因此y=x+++x; y=(x++)+x; y=10 x=6但是當我執行程序時:y=11,x=6如果我理解有誤請糾正我 ...
[英]Whats the order of operations with respect to 'return' in C
我對這個 output 感到震驚......現在已經在 C 中編碼了幾年。 有人可以解釋一個可能的用例嗎? 似乎應該是編譯器警告。 var is: 1 ...
[英]*a++ = *b++ (what does it mean, how it works)
執行此操作后的值是多少? 上面的代碼給了我一個分段錯誤。 ...
[英]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 ...
[英]Why is the output of the following program showing compile time error?
為什么下面程序的output出現編譯時錯誤? 請解釋“需要左值” ...
[英]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 我知道在任何循環中舉個例子: ...
[英]double free or corruption (out) in realloc
幾天以來,我一直在嘗試解決我的代碼中的一個問題,但我仍然堅持下去。 我想通過 realloc 在選項卡中插入一個值,但我有一個 memory 泄漏(或其他東西),我不知道為什么。 這是我的代碼: 當我運行我的程序時,出現雙重釋放或損壞(輸出)錯誤。 使用 Valgrind 命令,我有很多“地址 0 ...
[英]Confusion with increment operators in Java in conditional statements
因此,在考慮 output 時,我的思考過程是這樣的: 對於第一個 if 條件,我認為由於它的后增量運算符,i 值將首先使用然后增加,因此它將執行 if 條件並增加 i 的值,因此打印 output 11 是好的對於第二個 if 條件,我認為由於 tis pre 自增運算符,i 值將首先增加然后使 ...
[英]behavior while loop in c programming
output 在這種情況下是 1 output 在這種情況下為 0 我不確定為什么在每種情況下都得到這個不同的 output 我的意思是為什么在第一種情況下為 1 而在第二種情況下為 0 ...
[英]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 循環中做了什么? 我在這里看到了一個類似的問題,但我仍然感到困惑。 我以前從未見過這種語法,也找不到很多關於它的信息。 ...
[英]Recursive function for outputing string
我有以下代碼: 我想退回Janez。 通過遞歸 function。 編譯時我沒有任何錯誤。 當我運行程序時出現錯誤“分段錯誤(核心轉儲)”? 我究竟做錯了什么? ...
[英]C Incrementing pointer address passed to a function ++ operator
我有一個從這個討論中提出的問題: C - 修改傳遞給函數的指針的地址 假設我有以下代碼: #include <stdio.h> foo(char **ptr){ *ptr++; } int main() { char *ptr = malloc(64); ch ...
[英](Question about i++) What is the principle of this code?
代碼 輸出是 由於i是1,我以為if語句滿足2% 2 == 0,應該輸出2,但是不知道為什么是3。 ...
[英]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 中,前增 ...
[英]Why does variable i not change after i=i++?
我不明白 LinkedIn 的 Java 評估測試中的以下問題: 為什么這段代碼會打印 10 次“Hello world.”? 我知道 k++ 的意思是,首先做工作(計算、分配等)然后增加 k。 所以我認為對於 k=k++,k 必須在賦值后遞增: 最后,我希望得到 k=k+1。 例如下面 ...
[英]Unable to figure out the logic process to get this answer without running the program - C++
我在不運行程序的情況下得到的答案是 6 (a=1, b=2, c=3)。 但是,運行程序后,答案返回 8 (a=1, b=4, c=3)。 請有人能解釋一下你是如何得到每個答案的嗎? ...