指針的其他用法

指針與數(shù)組
  • 數(shù)組的地址:數(shù)組名、&數(shù)組首元素
  • 指針是專門用于保存地址
  • 由于數(shù)組的首元素的地址就是數(shù)組的地址,所以定義一個指針指向數(shù)組其實就是定義一個指針指向數(shù)組的首元素,所以數(shù)組的首元素是什么類型,那么指向數(shù)組的指針就是什么類型
int ages[] = {1,2,3};

// 下面兩種方式都可以
int *p = &ages[0];
int *p = ages;
  • 因為p指針存儲的值和ages中存儲的值相同,所以以前用ages得地方都可以使用p代替
int ages[] = {1,2,3};
int *p = ages;
p[0] = 888;
指針的用途
  • 取值的時候,會根據(jù)指針類型所占用的字節(jié)去取出對應(yīng)字節(jié)的數(shù)據(jù)
  • 用于做加法運算,指針+1,其實是加上指針類型所占用的長度
int ages[] = {1,5,10,15};
int *p = ages;
printf("%i\n",*p);      // 輸出1
printf("%i\n",*(p + 1));// 輸出5
printf("%i\n",*(p + 2));// 輸出10
printf("%i\n",*(p + 3));// 輸出15
指針和字符串
  • 因為數(shù)組名就是數(shù)組的地址,數(shù)組名保存的就是數(shù)組的第0個元素的地址,所以我們可以使用指針來保存字符串
  • 通過指針保存一個字符串,其實就是保存的字符串的第0個元素的地址
char str[] = "yaof";
char *str2 = "yaof";
  • 數(shù)組和指針保存字符串的區(qū)別:

  • 如果通過數(shù)組來保存字符串,那么字符串是一個變量str,可以修改

  • 如果通過指針來保存字符串,那么字符串是一個常量str2,不可以修改

  • 數(shù)組保存的字符串存儲在內(nèi)存的中,而通過指針保存的字符串存儲在常量區(qū)

  • 存儲在棧中的變量有一個特點,當(dāng)作用域結(jié)束系統(tǒng)會自動釋放該變量

  • 存儲在常量區(qū)中得值有一個特點,不會被釋放,而且多個相同的值對應(yīng)的地址相同

  • 注意:用指針來保存字符串不可以修改

  • 注意:指針不初始化不能隨便使用

指針數(shù)組
char *names[4] = {"jiang", "zhao", "wang", "liu"};
函數(shù)指針
  • 指向函數(shù)的指針的定義格式:返回值類型 (*指針變量名)(參數(shù)列表)

    • *: 代表是一個指針
    • 指針變量名:代表指針變量的名稱,區(qū)分不同的變量
    • (*指針變量名):代表將來指向一個函數(shù)
    • 返回值類型:代表指向的函數(shù)是否有返回值
    • (參數(shù)列表):代表指向的函數(shù)的參數(shù)列表,沒有參數(shù)時使用()
  • 函數(shù)指針分成四種類型

    • 沒有返回值,沒有參數(shù)
    • 沒有返回值,有參數(shù)
    • 有返回值,沒有參數(shù)
    • 有返回值,有參數(shù)
// 沒有返回值,沒有參數(shù)
void (*functionP)();
functionP = sum;// 函數(shù)后面不能加括號
functionP();// 調(diào)用函數(shù)

// 沒有返回值,有參數(shù)
void (*functionP)(int, int);

// 有返回值,沒有參數(shù)
int (*functionP)();

// 有返回值,有參數(shù)
int (*functionP)(int,int);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評論 3 44
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,682評論 0 4
  • 第二章,荒島求生 終于自由了!貝塔開心的說。我以后要自己生活,到一個沒人的地方去,建立自己的家!建立自己的...
    張博元閱讀 582評論 1 2
  • 昨夜筱蘇失眠了。 晚上10點,筱蘇像往常一樣,洗漱完畢,敷了一張面膜,躺在床上看看書,醞釀一下睡意,不知不覺已經(jīng)過...
    漉真的后花園閱讀 525評論 1 2
  • 每個人,青春時期都有一個深深愛戀的人。這個人,就在你最美好的記憶里,你甚至于不知道你喜歡的是他的什么,甚至于不知道...
    不帥氣不簽名閱讀 242評論 0 0

友情鏈接更多精彩內(nèi)容