1樓:韋綠柳巨琴
編成中「=」不是等於的意思,而是賦值的意思,而且是右邊賦給左邊,而「==」才是我們數學中理解的等於!希望採納!
2樓:勞秀梅檀午
沒有估計錯的話,前者是錯誤語句,錯在試圖把指標賦給變通非指標變數t;後者是正確語句,把指標x指向的內容*x賦給t,把指標y指向的內容*y賦給x指向的內容*x,再把t賦給指標y指向的內容*y。從而完成了指標x、y指向的內容的值交換。
3樓:匿名使用者
兩種寫法語義相同,僅有一些語法不同。
第一種寫法三個表示式各自為單獨語句。
第二種寫法表示為一個逗號表示式。
兩種寫法的運算結果完全相同,一般使用第一種,第二種用在「只能寫一句話」的情況下。
比如在for語句中同時使用兩個迴圈變數時怎麼辦?可以這樣寫:
for(i = 0, j=100; i<100 && j > 0; i++,j--)
另外,逗號表示式還可以用做計算賦值,比如:
x = (x = 99, x / 3)
逗號表示式返回值為最後一個子表示式的計算值。
c語言中t x與t &x有什麼區別
4樓:光明
不太明白樓主的意思,按猜測的來
t 應該是種資料就夠型別吧,那麼t x就是定義了一個t型別的變數x,而t &x是定義了一個型別為t的指標型變數x,x所指的地址就是變數地址,可以這樣簡單理解
5樓:匿名使用者
t x 與 t &x,問題描述的不是很清楚,是不是使用在形如這樣的函式
int fun(t x,t &x1);中,如果是這樣的話,&x1,是個引用,假如我們對fun進行傳引數,形如fun(a,b); 那麼在fun函式體內讀寫x變數的話就是讀寫fun函式棧中的某一元素,對x1讀寫是對傳進來變數b內容進行讀寫。所以x1和b除了名字一樣,其它的包括地址內容都是一樣的!
6樓:禹水
……本來我是不會的,進來打醬油,看見t .x就想起了疼迅……
c語言x=&y和*x=y有什麼區別?
7樓:石孝柴詩
x=y是一個賦值表示式,將y的值賦給x
x==y是一個邏輯表示式,判斷x是否等於y,其值為1(真)或0(假)
8樓:
c的函式中的形參接收的都值拷貝。用x=&y後使x指向了y,但x和y都是fun中的區域性變數,退出後都不存在了,影響不到主函式中的變數值。而*x=y;是把y的值(也就是主函式中的b的值)賦給x指向的變數,x指向的變數不是a嗎?
所以實質就是把b的值賦給了a;而返回值是y=t,實質就是t,t既然先等於了*x,*x又就是a,b=fun(&a,b);返回給b的不就是a嗎?這就實現了交換。另說一句return y=t;中y=是多此一舉,寫return t;就行了,因為y是fun的區域性變數,在主函式中根本不可見!
9樓:渾楊氏刑嫻
if(x==y)是判斷x與y是否相等,相等則為真,不等則為假
if(x=y)這個是把y的值賦給x,然後判斷表示式x=y的值,c語言中,賦值表示式是有值的,它的值是賦值符號右邊的值,即x=y的值是y的值,如果y的值為0,那麼x=y為假,否則為真
一般來講,程式設計過程中if(x=y)這種寫法是錯誤的寫法,程式能夠通過編譯,也能夠執行,但是可能會出現意料之外的結果。
10樓:匿名使用者
x = &y。 fun函式的區域性變數x指向的地址被改變,注意這兒的指標是值傳遞, 所以不會對傳入的變數有任何影響,得到的結果就是a,b變成了相同的數值。 這樣做沒什麼意義。
11樓:匿名使用者
c語言x=&y和*x=y有什麼區別?整型和指標的問題啊~
c語言中包含whilefor和,C語言中包含while for 和do while3種迴圈控制語句,其中什麼迴圈控制語句至少要執行一次迴圈體
do while迴圈至少執行一次迴圈體。因為它是先執行迴圈體,再判斷條件的,另兩個是先判斷條件 條件符合才執行迴圈體 do while 要先執行do,然後再判斷while裡面的條件,如果條件成立則執行下一次do裡面的內容 do while語句會在不判斷執行條件的情況先首先執行一次 do while呀...
c語言中怎麼輸入數字和字母,C語言中怎麼輸入數字和字母?
大致提供下個人想法,用c語言中的ctype.h 檔案中的 isdigit 函式來判斷。雖然說該函式只能判斷0 9的數,但是,你可以把所有輸入的東西當成是一個陣列形式。呼叫該函式,用指標來逐一判斷其每一位。比如說如果是輸出,1111可以用isdigit 判斷其每一位都為真,這就為數字。輸入ajkjlk...
c語言中記憶體堆和棧的區別,C語言中記憶體堆和棧的區別
給你寫個小例子說明吧,一個小函式 void testfunction 上面函式中,變數a的記憶體就在棧中,a的生命周專 期只在大括號內屬,出了testfunction的大括號這塊棧空間就被釋放了。而上面函式通過呼叫malloc函式給pa分配了3 sizeof int 個位元組長度的記憶體,這段記憶體...