本文目錄一覽:
- 1、c語言關於指針問題 int x=2,y=5,*px=&x,*py=&y;這個語句*px=&x正確么,如果正確的話在vc++6.0中是如何運
- 2、在C語言中,&*px的含義
- 3、c語言 *++px(px指針),是什麼意思呢
c語言關於指針問題 int x=2,y=5,*px=&x,*py=&y;這個語句*px=&x正確么,如果正確的話在vc++6.0中是如何運
int x=2,y=5,*px=x,*py=y; 這叫聲明,不叫語句。
聲明中 int *px=x; 正確。它聲明 px 是指針,並 初始化為 x 的地址。
如果不是聲明,而是語句:
int x=2, *px; // 聲明 變量 x, 初始化 x=2, 聲明 px 是 指針 變量
*px=x; // 這裡 是語句,這個語句 不正確。
語句里要寫:
px = x; // 把 x 的地址 賦給 px, 也就是 讓 px 指向 x.
接下來要是有語句:
*px = 5; // 這個語句正確, 語句里 *px 是 值
y = *px; // 這個語句正確, 語句里 *px 是 值
————–
C/C++ 奇葩之一,外貌相同的東西,在聲明裡 和 在 語句里 卻可能 不是一回事。
在C語言中,&*px的含義
px是指針,*px是取px指向的元素的值,*px是取指向元素的地址
c語言 *++px(px指針),是什麼意思呢
*px++等價於*(px++),跟(*Px)++ 完全是兩種運算。很令人遺憾的是*(px++)不等同於px++;
*p;,因為後置++操作的效果是在當前子表達式結束(更準確的術語是“順序點“sequence point)時生效,*(px++)實際上同義於*px;px=px+1
這個名詞翻譯成“結合性”的比較多吧。結合性影響的僅限於隱式加括號的位置,例如“前置++,–,!等運算符的的結合性是從右到左”就表示++++a隱式加上括號後等同於++(++a),即括號總是加在靠右的位置;*,/,%,+,-之類的運算符的的結合性是從左到右,就表示 a*b*a隱式加上括號後等同於(a*b)*c。結合性跟運算順序是毫無關係的,這是極容易造成誤解的地方
就是正號,例如表達式“+9”中的+就是一元的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301493.html