請問c語言中的特殊運算子成員的作用和用法。如area

2021-03-05 09:22:08 字數 6088 閱讀 5135

1樓:匿名使用者

如果有乙個結構node。像下面一樣。

struct node

;然後,你申明乙個指向node的指標node *area;(要記得malloc或者new)

這個時候,你就要用->符號來通過area訪問area所指向的內容。比如area->data = ...;area->next=。。。之類的。

我感覺只能是指標用這個,如果不是指標。而是node area。那就要用area.data。用這個點來訪問了。

你說的area->flags=flags;的意思 就是 area指向的結構中有乙個變數的名字是flags,就和我上面的data一樣的。後面的這個flags應該是你程式中的乙個變數,應該是和你定義的結構中的flags是一樣的型別,這樣就賦值給它了。(個人感覺flags應該是bool型的)

這也是我個人的理解,希望能幫得上你。

2樓:匿名使用者

.是直接引用,-》是間接引用。通俗點說就是a.b是取a裡面個乙個b,a->b是取a指向的東西裡的b,此時這個a一般是個指標。

3樓:匿名使用者

跟點類似。點是取結構的資料成員,->是取指標(指向結構)指向的結構的資料成員。

area->flags=flags;是area指標指向的結構的flags資料成員被賦予flags。

c語言中n--和--n是什麼意思

4樓:打娘胎裡喜歡你

如下:n--和--n的作用都是讓n自減1,如原先n為5,n--或--n之後n就變為了4。

他們的區別在於:

n--這個表示式的值是n自減之前的值,如:

int n=5;

int a=n--;//此時a的值為5

n--這個表示式的值是n自減之後的值,如:

int n=5;

int a=--n;//此時a的值為4

例如:n=10;

k=10*n--+3;

則結束後,k=103, n=9

--n就是在表示式中,先n自n自減,再取n的值進行運算;

例如:n=10;

k=--n*10+3;

則結束後,k=93, n=9

若是單獨的語句--n; 則與 n--; 是完全沒有區別的。

5樓:匿名使用者

1、n--就是在表示式中,先取n的值進行運算,運算結束後再n自減;

例如:n=10;

k=10*n--+3;

則結束後,k=103, n=9

2、--n就是在表示式中,先n自n自減,再取n的值進行運算;

例如:n=10;

k=--n*10+3;

則結束後,k=93, n=9

3、若是單獨的語句--n;  則與 n--;  是完全沒有區別的。

擴充套件資料c語言的運算

c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式語言。在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單,但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全。

當多種不同運算組成乙個運算表示式,即乙個表示式中出現多種運算子時,運算的優先順序和結合規則顯得十分重要。

在學習中,對此合理進行分類,找出它們與數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算子在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。

參考資料

6樓:肥仙女

1、n--,先取n的值進行運算,運算結束後再n自減;

例如:n=10;

k=10*n--+3;

則結束後,k=103, n=9

2、--n:先n自n自減,再取n的值進行運算;

例如:n=10;

k=--n*10+3;

則結束後,k=93, n=9

擴充套件資料:"\n":

c語言中的換行符是"\n",就是輸入完一行內容後,游標轉到下一行的起始位置 。

例如:printf("first line\n");

printf("second line\n");

跳轉結構:

return:用在函式體中,返回特定值(如果是void型別,則不返回函式值)。(k&r時期引入)

continue:結束當前迴圈,開始下一輪迴圈。(k&r時期引入)break:

跳出當前迴圈或switch結構。(k&r時期引入)goto:無條件跳轉語句。

(k&r時期引入)分支結構:

if:條件語句,後面不需要放分號。(k&r時期引入)else:

條件語句否定分支(與if連用)。(k&r時期引入)switch:開關語句(多重分支語句)。

(k&r時期引入)case:開關語句中的分支標記,與switch連用。(k&r時期引入)

default:開關語句中的「其他」分支,可選。(k&r時期引入)

7樓:匿名使用者

n--和--n的意思都是讓n自減1。

1: n--這個表示式的值是n自減之前的值。

如:int n=5;int a=n--;

此時a的值為5。

2 :--n就是在表示式中,先把n自減,再取n的值進行運算。

如:int n=5;int a=--n;

此時a的值為4。

8樓:匿名使用者

樓主你好。

n--和--n的作用都是讓n自減1,如原先n為5,n--或--n之後n就變為了4。

他們的區別在於:

n--這個表示式的值是n自減之前的值,如:

int n=5;

int a=n--;//此時a的值為5

--n這個表示式的值是n自減之後的值,如:

int n=5;

int a=--n;//此時a的值為4

記憶方法:

從左邊向右邊看,n--先看到n,所以表示式的值是n;--n先看到--,所以表示式的值是自減之後的值。

希望對你有幫助,有不懂的可以追問我。

9樓:滄海雄風

都是自減操作

區別是 順序問題

、舉例int n=2;

int b = n--;

這個b等於2

如果是int b = --n;

那麼b=1

10樓:菜鳥程式設計師

n--如果用在迴圈判斷條件裡,執行完一次迴圈語句再將n-1.

--n如果用在迴圈判斷條件裡,先將n-1再執行迴圈語句。

其他用法基本都是將n-1.手打望採納

11樓:陸舒杰

c語言中,i--相當於i=i-1,--n也是一樣的,也就是通常進行的自減運算

給你舉乙個例子吧

例如:i--與--i的區別

i--在使用i之後,使i的值減1;--i在使用i之前,先使i的值減1.

同理n--和--n也是一樣的

建議你可以去翻看譚浩強的c程式設計,裡面有很詳細的介紹!

希望幫助到你

12樓:匿名使用者

n--和--n都是n-1的意思,但是他們的區別在於,舉個例子

a=2,n=3 if(a==n--)這個時候先判斷a==n,n再減1,而if(a==--n),是n先減1,再判斷a==n

13樓:一切盡在眼底

n--為後自減

--n為先自減

舉個簡單的例子吧:

int x = 1, y = 1;

int a = x--;

int b = --y;

printf("%d, %d, %d, %d", a, b, x, y);

輸出:1, 0, 0, 0

這裡就突出了這2種自減的不同點了

14樓:雲南新華電腦學校

n--,先取n的值進行運算,運算結束後再n自減;

--n:先n自n自減,再取n的值進行運算;

15樓:

c語言中'\n'是換行的意思,一般放到printf()這類函式中使用,比如:

printf("this is a test\n please check it\n");

結果是:

this is a test

please check it

16樓:悲傷0謝幕

n--、--n都是n=n-1 的意思,就是自減1,n--先返回再自減,--n先自減再返回

例如:n=1;

a=n--;

//a=1 n=0

n=1;

a=--n;

//a=0 n=0

17樓:倒霉熊

n--和

--n都是 n=n-1;單獨的時候沒有區別

18樓:沁涼之夏

使用後自減1 先自減1在使用

19樓:匿名使用者

rd? hlhnjui? i'm

20樓:雪恥聆聽

n--是先利用n的值,然後再減1;--n是n先減1,然後再利用n值

21樓:匿名使用者

礤爸爸多爸爸d?……這種事情ada把de

c語言運算子中的>>是什麼意思?有啥功能?謝謝。

22樓:蘇嘉愛娛樂

>>是右移運算子,移位運算子的一種:程式設計中,位操作運算子的一種。

c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。

位移位運算子的運算物件、運算規則與結果、結合性如表2-16所示。

移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移有關。如果是左移,則規定補入的數全部是0;如果是右移,還與被移位的資料是否帶符號有關。若是不帶符號數,則補入的數全部為0;若是帶符號數,則補入的數全部等於原數的最左端位上的原數(即原符號位)。

擴充套件資料

優先順序:

語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。

這種自左至右的結合 方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算子是賦值運算子。

如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

23樓:佼丹厙琬

c語言運算子中問號是條件運算子(與冒號組合)。該運算子是c語言中唯一乙個三目運算子。

可以通過如下的例項來說明條件運算子的用法:

int a=1, b=3;

int max;

max = a>b ? a : b; // 如果a>b,則max的值為a,否則max的值為b,也即取a與b中的較大者

24樓:

右移運算子「>>」是雙目運算子。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

例如:設 a=15,

a>>2

表示把000001111右移為00000011(十進位制3)。

應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。

25樓:匿名使用者

就是移位指令》明顯向右移

據個例子:

15>>4就是0000 1111向右移動四位前邊補零為0000 0000

如果是有符號數即最高位是1前補1例如8f>>4即為1000 1111右移4位是1111 1000

C語言運算子C語言運算子是怎麼運算的

內容來自使用者 wjian178 e68a84e8a2ad62616964757a686964616f31333433646432 1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正...

c語言(冪)運算子,C語言 (冪)運算子

運算子是 按位異或 1 異或是乙個數 算符。他應用於邏輯運算。2 例如 真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。3 在計算機應用中,普遍運用,異或的邏輯符號 shift 6 形象表示為 真 假 真 假 真 真 ...

運算子的作用是什麼c語言中運算子的作用是什麼?

運算子用於執行程式 運算,會針對乙個以上運算元專案來進行運算。例如 2 3,其運算元是2和3,而運算子則是 在vb2005中運算子大致可以分為5種型別 算術運算子 連線運算子 關係運算子 賦值運算子和邏輯運算子。運算子優先順序指定了兩個表示式繫結得有多 緊密 例如,表示式 1 5 3 的結果是 16...