C語言之指標基礎概念

來源:互聯網
上載者:User

標籤:

開通部落格園以來第一次寫隨筆,就寫一下關於C語言指標的一些感想吧。

很多同學都搞不懂指標,我一開始也雲裡霧裡沒看懂指標,而且老師又把指標說得很難的樣子。其實主要是把指標”*“的作用給弄混了,不用畏懼,細心點看就可以了。

首先簡介一下指標的概念好了。指標本身也是一個變數,只不過這個變數的值比較特殊,它不是常規的整型數或者浮點數,而是指向另一個變數地址的值。通過指標的值可以知道另一個變數的地址以及存在該地址中的具體數值(該數值可以是整型,浮點型,結構體,甚至也可以是一個指標),通過指標得到另一個變數的具體值的方法叫做引用。基本概念大概就是這麼點。

其次通過上面的概念可以引出下面的內容。”*“有兩個作用,一個是定義時出現的”*“代表這是一個指標變數,而在賦值的時候出現的”*“代表這是取出該地址所儲存的值。單單這麼說可能沒概念,那就舉個例子好了。

int a=1;//定義一個值為1的變數aint *p=&a;//定義一個指標類型的變數p指向變數a,或者理解為將變數a的地址值賦給了指標變數pprintf("輸出指標p的引用值為:%d\n",*p);//和上一行代碼中的*p不同,這裡的*p代表的是取出指標變數所指向地址中所儲存的值

所以,輸出的內容為:”輸出指標p的引用值為:1“。

那麼由此還可以得出下面兩句等價代碼:

a=10;//給a賦值為10*p=10;//給指標p指向的地址的變數賦值為10,因為p指向a,所以*p就是a。所以這兩句代碼等價

下面就給出完整的可運行C語言代碼:

#include<stdio.h>int main(){    int a=1;    int *p=&a;    printf("輸出指標p的引用值為%d\n",*p);    *p=10;    printf("輸出*p的值為:%d,此時a的值為%d\n",*p,a);    printf("輸出指標p的值,即變數a的地址值為:%d\n",p);    return 0;}

 

C語言之指標基礎概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.