j是一個指向 的指標i。第一個列印陳述句回傳 的值i,但是當我嘗試參考指標并遞增i1 時,它回傳一個無用的值,我認為它是 的地址i。為什么會發生這種情況,我在哪里可以更詳細地了解指標?
#include <stdio.h>
int main( )
{
int i = 3, *j;
j = &i ;
printf ( "\nValue of i = %u", *j ) ;
*j ;
printf ( "\nValue of i = %u", *j ) ;
}
在*j 我期望j指向i并且現在的值i應該是 4 之后。所以當我列印*j它應該回傳 4。
uj5u.com熱心網友回復:
我認為它應該列印 4
我假設你認為你正在增加i。但實際上你是在增加j指標而不是它指向的內容。這是因為 C 運算子優先級表示 的 優先級高于*.
也就是說,*j 正在做:
j*j
第二步是無操作,因為沒有使用結果。
你真正想要的是:(*j)
uj5u.com熱心網友回復:
表達方式
*j
首先是取消參考指標,然后遞增它。您想增加參考的值并保持指標不變。這可以通過以下運算式來實作:
*j = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/493279.html
