1、i_pointer是乙個指標變數,而*i_pointer表示i_pointer所指向的變數即i。
下面兩個語句作用相同:
① i=3;
② *i_pointer=3;
2、定義指標變數:
基型別 *指標變數名;
下面都是合法的定義:
float *pointer_3; // pointer_3是指向單精度型資料的指標變數
char *pointer_4; // pointer_4是指向字元型資料的指標變數
請注意: 指標變數名是pointer_3和pointer_4,而不是*pointer_3和*pointer_4,即「*」不是指標變數名的一部分,在定義變數時在變數名前加乙個「*」表示該變數是指標變數。
針變數名是pointer_3,而*pointer_3表示指標pointer_3所指向的儲存單元(如果是變數,那麼他就指向這個變數)。
那麼,怎樣使乙個指標變數指向另乙個變數呢?只需要把被指向的變數的位址賦給指標變數即可。例如:
pointer_1=&i; //將變數i的位址存放到指標變數pointer_1中
pointer_2=&j; //將變數j的位址存放到指標變數pointer_2中
3、引用指標變數:
(1)如果已執行了「pointer_1=&a;」語句,請問&*pointer_1的含義是什麼?「&」和「*」兩個運算子的優先級別相同,但按自右至左方向結合,因此先進行*pointer_1的運算,它就是變數a,再執行&運
算。因此,&*pointer_1與&a相同,即變數a的位址。
如果有pointer_2=&*pointer_1;它的作用是將&a(a的位址)賦給pointer_2,如果pointer_2原來指向b,經過重新賦值後它已不再指向b了,而也指向了a。
(2)*&a的含義是什麼?先進行&a的運算,得a的位址,再進行*運算,即&a所指向的變數,*&a和*pointer_1的作用是一樣的(假設已執行了「pointer_1=&a;」),它們等價於變數a。即*&a與a等價。
#include
#include
using namespace std;
void main(){
char c;
int *num,*p;
int a=10,b=20;
num=&a;
cout<
指標與變數
指標變數是一種特殊的變數,它和以前學過的其他型別變數的不同之處是 用它來指向另乙個變數。為了表示指標變數和它所指向的變數之間的聯絡,在c 中用 符號表示指向,例如,i pointer是乙個指標變數,而 i pointer 表示 i pointer 所指向的變數,見圖6.3。下面兩個語句作用相同 c ...
指標與變數
變數 乙個東西在記憶體裡面,而你想用語言去表示那個東西,就必須找到乙個符合去表示它。它可以是常量 變數 有了變數,你就可以用他傳遞值,呼叫它 修改它,玩弄它,讓他欲罷不能。指標呢?還是不修改原值?如果使用foo mymoney 這種形式的話,就會把mymoney代表的記憶體中的內容 複製 乙份到函式...
c的指標與指標變數
系統為每乙個記憶體單元分配乙個位址值,c c 把這個位址值稱為 指標 如有int i 5 存放變數i的記憶體單元的編號 位址 i被稱為指標。指標變數 則是存放前述 位址值 的變數,也可以表述為,指標變數 是存放變數所佔記憶體空間 首位址 的變數 因為乙個變數通常要占用連續的多個位元組空間 比如在in...