程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 和指針相關的兩個特殊運算符,和相關的等價表達式

和指針相關的兩個特殊運算符,和相關的等價表達式

編輯:關於C語言

和指針相關的兩個特殊運算符:

一、"&" 取地址運算符,通過&運算符可以取出普通變量的地址;

二、"*"  有兩種意義:

   1.  為指針標志: 是否為指針標志主要看前面是否有類型,此處有一個int

   2.  為指針運算符:

     在等號右面為取值。*可以取出指針變量所指向的普通變量的值。

     在等號左面為賦值。*可以將指針變量所指向的普通變量的值,修改為其他。

   3.  為乘法運算符。當且僅當左右的都為變量時。略。

int a, b =20, c=30, d=40, *p; (正確,此處的*為指針標志,只起到定義的左右,沒有取值和賦值的作用。是否為指針標志主要看前面是否有類型,此處最前面有一個int)

p=&d; (正確,p指向d的地址)

a=*p;  (正確,此處的*為取值。最後結果a的值變為了d的值40)

*p =c; (正確,此處的*為賦值。最後結果d的值變為了C的值30)

*p =&b; (運行錯誤,左邊為內容值,右邊為地址,不等價)

----------------------------

等價表達式

若指針變量p指向變量a,即將變量a的地址賦給了指針變量p.

如:int a=20, *p=&a;

則有如下結果:

A、*p <=> a

B、 p <=> &a

C、 &*p <=> &a <=> p

D、*&a <=> *p <=> a

E、 (*p)++  a++ 

     (*p)--  a--    

     ++(*p)  ++a   ++*p   

      --(*p)  --a   --*p

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved