国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言 指針聲明和定義 - C語言零基礎(chǔ)入門教程

這篇具有很好參考價值的文章主要介紹了C語言 指針聲明和定義 - C語言零基礎(chǔ)入門教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

  • [一.指針簡介]
    • [1.內(nèi)存]
    • [2.內(nèi)存地址]
    • [3.指針聲明]
  • [二.指針類型]
  • [三.聲明并初始化一個指針]
    • [1.聲明指針并直接初始化 – 推薦]
    • [2.先聲明指針在初始化 – 不推薦]
  • [四.查看指針地址和指針的值]
  • [五.NULL 指針 – 空指針]
  • [六.重點總結(jié)]
  • [七.猜你喜歡]

零基礎(chǔ) C/C++ 學習路線推薦 : [C/C++ 學習目錄]>> [C 語言基礎(chǔ)入門]

一.指針簡介

指針和數(shù)組是 C 語言的靈魂,關(guān)于[數(shù)組],前面我們已經(jīng)介紹完了,在講解指針之前,需要明白三個概念:內(nèi)存 / 內(nèi)存地址 / 指針;

1.內(nèi)存

[C 語言]所有變量都存放在內(nèi)存中,就好比杯子里的水,水就是變量,杯子就是內(nèi)存,內(nèi)存作為容器用來存放變量;

2.內(nèi)存地址

內(nèi)存地址就好比一個人除了有名字之后外還有身份證,每個人的身份證都是唯一的,內(nèi)存地址也是唯一的,如何查看內(nèi)存地址,下面的文章也有有講解;

3.指針聲明

[指針]也是 C 語言中變量的一種,其值為一個[變量]的地址,即內(nèi)存位置的直接地址。指針變量聲明的一般形式為:

/*
type:指針類型,它必須是一個有效的 C 數(shù)據(jù)類型,例如:int / float / double / char .....
var-name : 指針變量的名稱
*/
type *var-name;

注意:不要忘記在指針類型和變量名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變量,這也是普通變量聲明和指針聲明的區(qū)別之一;

int    *p;    /* 一個整型的指針 */
int     p;    /* 一個整型的變量 */

二.指針類型

指針很靈活,它可以指向任意類型的數(shù)據(jù)。[指針]的類型說明了它所指向地址空間的內(nèi)存,以下是有效的指針聲明:

int    *p;    /* 一個整型的指針 */
double *p;    /* 一個 double 型的指針 */
float  *p;    /* 一個浮點型的指針 */
char   *p;    /* 一個字符型的指針 */

注意:不要忘記在指針類型和變量名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變量,這也是普通變量聲明和指針聲明的區(qū)別之一;

三.聲明并初始化一個指針

1.聲明指針并直接初始化 – 推薦

int     *p = 10;          //聲明一個int類型的指針指向變量為10的內(nèi)存地址
double  *p = 10.55;       //聲明一個double類型的指針指向變量為10.55的內(nèi)存地址
float   *p = 10.0;        //聲明一個float類型的指針指向變量為10.0的內(nèi)存地址
char    *p = "123456";    //聲明一個char類型的指針指向變量為"123456"的內(nèi)存地址

2.先聲明指針在初始化 – 不推薦

C 語言中,定義局部變量時如果未初始化,則值是隨機的;全局變量 、靜態(tài)變量初始值為 0

四.查看指針地址和指針的值

在文章 [格式控制符/占位符]中已經(jīng)介紹了不少占位符,而對于指針的占位符則是用 %p 或者 %x 表示,具體使用參考下面例子:

/******************************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

int main()
{
    int iValue = 10;
    int *pValue = &iValue;
    printf("整形變量iValue值:%d   整形變量iValue內(nèi)存地址:%p\n", iValue,&iValue);
    printf("整形指針變量pValue值:%d   整形指針變量pValue內(nèi)存地址:%p\n", *pValue, pValue);
    printf("-------------------------------------------------------\n");
    *pValue = 20;
    printf("整形變量iValue值:%d   整形變量iValue內(nèi)存地址:%p\n", iValue, &iValue);
    printf("整形指針變量pValue值:%d   整形指針變量pValue內(nèi)存地址:%p\n", *pValue, pValue);
    printf("-------------------------------------------------------\n");
    iValue = 30;
    printf("整形變量iValue值:%d   整形變量iValue內(nèi)存地址:%p\n", iValue, &iValue);
    printf("整形指針變量pValue值:%d   整形指針變量pValue內(nèi)存地址:%p\n", *pValue, pValue);
    system("pause");
    return 0;
}
/*
輸出結(jié)果:
整形變量iValue值:10   整形變量iValue內(nèi)存地址:004FF798
整形指針變量pValue值:10   整形指針變量pValue內(nèi)存地址:004FF798
-------------------------------------------------------
整形變量iValue值:20   整形變量iValue內(nèi)存地址:004FF798
整形指針變量pValue值:20   整形指針變量pValue內(nèi)存地址:004FF798
-------------------------------------------------------
整形變量iValue值:30   整形變量iValue內(nèi)存地址:004FF798
整形指針變量pValue值:30   整形指針變量pValue內(nèi)存地址:004FF798
請按任意鍵繼續(xù). . .
*/

在上面例子中:聲明了一個整形變量 iValue ,并使用指針 pValue 執(zhí)行整形變量 iValue ,根據(jù)輸出的信息可以得到結(jié)論:兩者的內(nèi)存地址都一樣;

由于整形變量 iValue 指針變量 pValue 內(nèi)存地址一樣,整形變量 iValue 的值發(fā)生變化后指針 pValue 也會跟著一起變化,指針 pValue 的值發(fā)生變化后整形變量 iValue 的值也會跟著一起變化,兩者本來就是同一個, 就好比既可以通過名字找到你,也可以通過身份證號碼找到你;

五.NULL 指針 – 空指針

在變量聲明的時候,如果沒有確切的地址可以賦值,為指針變量賦一個 NULL 值,賦為 NULL 值的指針被稱為**[空指針]**。

NULL 指針是一個定義在標準庫中的值為零的常量。請看下面的程序:

 /******************************************************************************************/

#include <stdio.h>
int main ()
{
   int  *ptr = NULL;
   printf("ptr 的地址是 %p\n", ptr  );
   return 0;
}
//輸出:ptr 的地址是 0x0

在大多數(shù)的操作系統(tǒng)上,程序不允許訪問地址為 0 的內(nèi)存,因為該內(nèi)存是操作系統(tǒng)保留的。然而,內(nèi)存地址 0 有特別重要的意義,它表明該指針不指向一個可訪問的內(nèi)存位置。但按照慣例,如果指針包含空值(零值),則假定它不指向任何東西。

如需檢查一個空指針,您可以使用 [if]語句,如下所示:

if(ptr)     /* 如果 p 非空,則完成 */
{
    //....
}
if(!ptr)    /* 如果 p 為空,則完成 */
{
    //....
}

六.重點總結(jié)

指針作為一個變量,肯定有自己的地址,[占位符使用 %p 或者 %x];

int *p = 10;
printf(" p : %p",p);// 輸出地址:004FF798

指針作為一個變量,肯定有自己的值,占位符使用 %d ,取指針的值需要在指針變量前面加上 * ,否則是取指針的地址,例如:

int *p = 10;
printf(" p : %d",*p);// 輸出值: 10
printf(" p : %p",p); // 輸出地址:004FF798

指針很靈活,它可以指向任意類型的數(shù)據(jù)。指針的類型說明了它所指向地址空間的內(nèi)存文章來源地址http://www.zghlxwxcb.cn/news/detail-842281.html

到了這里,關(guān)于C語言 指針聲明和定義 - C語言零基礎(chǔ)入門教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 紅袖添香,絕代妖嬈,Ruby語言基礎(chǔ)入門教程之Ruby3基礎(chǔ)語法,第一次親密接觸EP01

    書接上回,前一篇我們在全平臺構(gòu)建好了Ruby3的開發(fā)環(huán)境,現(xiàn)在,可以和Ruby3第一次親密接觸了。 Ruby是一門在面向?qū)ο髮用鏌o所不用其極的解釋型編程語言。 我們可以把編寫Ruby代碼看作是一場行為上的藝術(shù),編碼就像跳舞一樣,Ruby的每一步都很優(yōu)雅,幾乎沒有一步是多余的

    2024年01月20日
    瀏覽(22)
  • 時間老去,Ruby不死,Ruby語言基礎(chǔ)入門教程之Ruby3全平臺開發(fā)環(huán)境搭建EP00

    如果說電子游戲是第九藝術(shù),那么,編程技術(shù)則配得上第十藝術(shù)的雅稱。藝術(shù)發(fā)展的普遍規(guī)律就是要給與人們對于藝術(shù)作品的更高層感受,而Matz的Ruby語言則正是這樣一件藝術(shù)品。 無論是語法還是理念,都讓Ruby開發(fā)者感受到款待,如此,Ruby代碼就像活了過來,它們時而高聲

    2024年01月20日
    瀏覽(21)
  • 中文編程開發(fā)語言工具系統(tǒng)化教程零基礎(chǔ)入門篇和初級1專輯課程已經(jīng)上線,可以進入輕松學編程

    中文編程開發(fā)語言工具系統(tǒng)化教程零基礎(chǔ)入門篇和初級1專輯課程已經(jīng)上線,可以進入輕松學編程

    中文編程開發(fā)語言工具系統(tǒng)化教程零基礎(chǔ)入門篇和初級1專輯課程已經(jīng)上線,可以進入輕松學編程 學習編程捷徑:(不論是正在學習編程的大學生,還是IT人士或者是編程愛好者,在學習編程的過程中用正確的學習方法 可以達到事半功倍的效果。對于初學者,可以通過下面的

    2024年02月08日
    瀏覽(109)
  • C生萬物 | 指針入門到進階全方位覆蓋教程

    C生萬物 | 指針入門到進階全方位覆蓋教程

    文章篇幅較長,可前往電腦端進行學習?? 之前很多粉絲私信我說 C語言指針 怎么這么難,看了很多視頻都學不懂,于是我寫了一篇有關(guān)指針從入門到進階的教學,幫助那些對指針很困擾的同學有一個好的學習途徑,下面是本文的參考配套視頻,出自b站【鵬哥C語言】,鵬哥講

    2024年02月09日
    瀏覽(23)
  • C生萬物 | 指針入門到進階史上最全面教程

    C生萬物 | 指針入門到進階史上最全面教程

    文章篇幅較長,可前往電腦端進行學習?? 之前很多粉絲私信我說 C語言指針 怎么這么難,看了很多視頻都學不懂,于是我寫了一篇有關(guān)指針從入門到進階的教學,幫助那些對指針很困擾的同學有一個好的學習途徑,下面是本文的參考配套視頻,出自b站【鵬哥C語言】,鵬哥講

    2024年02月04日
    瀏覽(25)
  • go語言入門詳細教程

    1.Hello World Go 是一門編譯型語言,Go 語言的工具鏈將源代碼及其依賴轉(zhuǎn)換成計算機的機器指令(譯注:靜態(tài)編譯)。Go 語言提供的工具都通過一個單獨的命令 go 調(diào)用, go 命令有一系列子命令。最簡單的一個子命令就是 run 。這個命令編譯一個或多個以。 .go 結(jié)尾的源文件,鏈

    2024年02月04日
    瀏覽(96)
  • Lua語言入門教程 ——筑夢之路

    Lua 是一種輕量小巧的腳本語言,用標準C語言編寫并以源代碼形式開放, 其設(shè)計目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴展和定制功能。 Lua 是巴西里約熱內(nèi)盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組于 1993 年開發(fā)的,該小組成

    2024年02月09日
    瀏覽(17)
  • 【mmaction2 入門教程 04】訓練 AVA 數(shù)據(jù)集中的自定義類別

    【mmaction2 入門教程 04】訓練 AVA 數(shù)據(jù)集中的自定義類別

    在時空行為數(shù)據(jù)集中,最常出現(xiàn)的就是長尾數(shù)據(jù)集,即某些類別的動作標簽過少,導致訓練效果不好,在mmation2當中,提供了一個方法,就是可以自定義要訓練的類別。 那么先看看我之前訓練的分析結(jié)果 上圖中,深藍色的樣本數(shù)量,淺藍色的ap值,可以看出,樣本極少的類別

    2024年02月02日
    瀏覽(33)
  • C語言入門教程,C語言學習教程(第三部分:C語言變量和數(shù)據(jù)類型)二

    C語言入門教程,C語言學習教程(第三部分:C語言變量和數(shù)據(jù)類型)二

    前面我們多次提到了字符串,字符串是多個字符的集合,它們由 \\\" \\\" 包圍,例如 \\\"http://c.biancheng.net\\\" 、 \\\"C語言中文網(wǎng)\\\" 。字符串中的字符在內(nèi)存中按照次序、緊挨著排列,整個字符串占用一塊連續(xù)的內(nèi)存。 當然,字符串也可以只包含一個字符,例如 \\\"A\\\" 、 \\\"6\\\" ;不過為了操作方

    2024年01月17日
    瀏覽(21)
  • C語言快速入門教程1快速入門 2指令 3條件選擇

    C語言快速入門教程1快速入門 2指令 3條件選擇

    C是一種編程語言,1972年由Dennis Ritchie在美國AT T的貝爾實驗室開發(fā)。C語言變得很流行,因為它很簡單,很容易使用。今天經(jīng)常聽到的一個觀點是--\\\"C語言已經(jīng)被C++、Python和Java等語言所取代,所以今天何必再去學習C語言\\\"。我很不贊同這種觀點。這有幾個原因。這些原因如下:

    2024年02月03日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包