秒解指標變數 抵消法

2021-10-06 04:29:00 字數 1058 閱讀 4974

本篇的目的是為了說明下面**中的乙個等價關係:

int a=200;

int *p;

p=&a; // *p是和a等價的

int a=999;

int b;

b=a;

(1)a、b都是變數

(2)b=a;是賦值語句;賦值號左邊稱為左值,表示記憶體 b;右邊稱為右值,表示記憶體 a中的資料。

學習指標,有兩個關鍵的運算子:& 和 *。

& 和 * 的含義

表示式解釋

&aa是變數,代表一塊記憶體;&a 表示 a 的記憶體的位址

*pp是指標變數或者位址值

*p  作為左值表示p指向的記憶體

*p  作為右值表示p所指記憶體中的值

int a=999;

printf("%d %d",a,*&a);// 999   999

*&放在一起,抵消掉了

(1)&a 表示取變數的位址

(2)*(&a),當其處於賦值號左端,表示一塊記憶體;檔期處於賦值號右邊,表示這塊記憶體中的值

#include

int main(void)

{    

int a;

a=100;

printf("%d\n",a);// 100

*&a=200;

printf("%d\n",a);// 200

#include

int main(void)

{    

int a,b;

a=100;

b=200;

int *p,*q;

p=&a;

q=&b;

*p=*q;

最難的一句就是

*p=*q;

利用代入法:

因為:p=&a; q=&b;

所以:*p=*q;

等價於:*&a=*&b;

利用抵消原理:

等價於:a=b;

趣解《5秒法則》

舉例 用本書知識使我比別人更高效完成工作或學習任務 開始 5 把鬧鐘放在不容易夠著的地方。因為,關鬧鐘比平時更費勁,會建立痛苦的聯想,而早起可讓您更快完成任務,是快樂的聯想。把鬧鐘放在身旁,還是放在費勁找它的地方,您是否更願意,在費勁關它的時候選擇起床來避免這種痛苦?4 前天晚上寫下1 3個 必做事...

Ubuntu gedit 中文亂碼問題 秒解

在中文支援配置還不完整的ubuntu 14.04中,使用gedit開啟帶有中文字元的檔案有時會出現亂碼的情況,這是由於gedit對字元編碼匹配不正確導致的,解決方法如下 在終端中輸入如下命令,然後重新開啟gedit即可 gsettings set org.gnome.gedit.preference...

指標解引用

所有的變數使用到這一點,在本教程中有乙個共同點 該變數必須先宣告在編譯的時候。這導致了兩個問題 第一,很難有條件地宣告乙個變數,把它在乙個if語句塊之外 在這種情況下,它會超出範圍時,塊的結束 第二,所有陣列的大小必須決定在執行程式之前。例如,以下是不合法的 1 2 3 4 5 cout how m...