指針(1)

1.什么是指針?

在c 語言中每一個變量或者函數(shù)都有自己的內(nèi)存地址,如果想獲取變量可以通過變量名直接獲取,想要調(diào)用某一個函數(shù)也可以直接調(diào)用函數(shù)名,因為變量名和函數(shù)名就代表了他們各自的內(nèi)存地址,但有些情況或許拿不到變量名 可以再重新定義一個變量P來存儲變量"testNumber"的內(nèi)存地址,根據(jù)存儲的內(nèi)存地址就可以找"testNumber"所存儲的值,那么這個P就成為成為指針.

2.指針與變量的區(qū)別

指針存儲另一個變量的內(nèi)存地址
變量儲存自己的二進(jìn)制數(shù)據(jù)
(解釋并不嚴(yán)謹(jǐn),但說出了重點)

3.指針的使用

int  testNumber = 20;
 
int *p   = &testNumber;

print("%d",*p);
*p(在指針變量p 前面加一個*代表從指針存貯的內(nèi)存空間中取出值)
代碼執(zhí)行完的內(nèi)存圖.png

4.指針變量占據(jù)內(nèi)存

Paste_Image.png

注意: 雖然各種類型指針都占有相同字節(jié),但是一定要用同種類型的指針去存儲同種類型的變量,否則極有可能造成取值錯誤的情況

5.例子??

用一個函數(shù)返回多個值 這樣函數(shù)就可以有兩個返回值
在變量前面加上&代表取出這個變量的內(nèi)存地址

- (void)viewDidLoad {
    [super viewDidLoad];
   
    int a = 10;
    int b = 20;
    int cha = 0;
    int he =  sum(a, b, &cha);
    
     printf("%d\n",a);
     printf("%d\n",b);
     printf("%d\n",cha);
     printf("%d\n",he);
    
}

int sum(int a,int b,int *cha)
{
    *cha =  b - a;
    return a + b;
}
打印結(jié)果:
10
20
10
30

參考文檔:
http://www.cnblogs.com/mjios/archive/2013/03/16/2963645.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容