女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

指針的概念

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2022-08-11 15:16 ? 次閱讀

簡(jiǎn)單回顧一下指針的概念

內(nèi)存會(huì)劃分以字節(jié)為單位的空間,每一個(gè)字節(jié)都有一個(gè)編號(hào)(地址/指針)

指針變量可以存放這個(gè)地址/指針

注:我們?nèi)粘Kf的指針,一般是指針變量

下面讓我們坐上指針進(jìn)階的直通車,來到第一站!字符指針

字符指針

代碼示例:

int main(){  char ch = 'w';  char* p= &ch;    char* pa = "abcdef";  return 0;}

字符變量ch里面存放了字符w

字符指針p里面存放了ch的地址

指針變量pa里面存放了abcdef字符串的地址,我們并沒有對(duì)這個(gè)字符串進(jìn)行初始化。而是直接把它放進(jìn)了指針變量pa里面。

和前兩行的字符w不同,abcdef是存儲(chǔ)在內(nèi)存中的只讀數(shù)據(jù)區(qū),無法修改,即便通過指針也無法修改。

為了避免理解出錯(cuò),我們一般會(huì)加上const修飾

const char* pa = "abcdef";

const放在*的左邊

表示const修飾的指針指向的內(nèi)容,表示指針指向的內(nèi)容不能通過指針來改變

但是指針變量本身是可以改變的

const放在*的右邊

表示const修飾的是指針變量本身,指針變量的內(nèi)容不能被修改

但是*pa指針指向的內(nèi)容是可以通過指針來修改的

代碼示例:

int main(){  char arr1[] = "abcdef";  char arr2[] = "abcdef";
  const char* str1 = "abcdef";  const char* str2 = "abcdef";
  if (arr1 == arr2)    printf("arr1==arr2
");  else    printf("arr1!=arr2
");
  if (str1 == str2)    printf("str1==str2
");  else    printf("str1!=str2
");
  return 0;}

它的結(jié)果如下:

0485bd1c-1944-11ed-ba43-dac502259ad0.png

在例子1里面我們提到過,str1和str2這種情況都指向一個(gè)常量字符串

既然字符串a(chǎn)bcdef無法被改變,編譯器也沒有必要?jiǎng)?chuàng)建兩個(gè)獨(dú)立的內(nèi)存空間來存放兩個(gè)相同的字符串

所以str1和str2的地址是完全一樣的

而arr1和arr2是完全不同的數(shù)組,它們的首元素地址不一樣,打印的結(jié)果是不相等

typedef關(guān)鍵字

如何使用:

在MSDN中,我們可以查找到typedef的定義

0495db66-1944-11ed-ba43-dac502259ad0.png

簡(jiǎn)單地說,typedef的作用就是把一個(gè)已有的類型名換一個(gè)新的名字

typedef int* pint;

這句代碼的意思是:將int*命名為pint

pint在使用的時(shí)候和int*完全一致

我們?nèi)匀豢梢允褂胕nt*

在結(jié)構(gòu)體里面,我們可以用typedef來縮短原有結(jié)構(gòu)體定義的語句

如:將struct Stu命名為Stu

04ce3dc6-1944-11ed-ba43-dac502259ad0.png

typedef和#define的區(qū)別

我們同樣可以使用#define語句,進(jìn)行這項(xiàng)操作

#define PINT int*

定義語句PINT為int*

指針連續(xù)定義

先來了解一下如何正確連續(xù)定義兩個(gè)指針

int*pa,*pb;//正確的連續(xù)定義
int*pa,pb;//錯(cuò)誤//pa是int*類型,而pb是int類型

因?yàn)檫@兩個(gè)的情況非常容易搞混,所以我們不建議連續(xù)定義指針

typedef int* pint;#define PINT int*
int main(){    pint pa,pb;//可連續(xù)定義指針    //pa-->int*    //pb-->int*    PINT pa,pb;//等同于int*pa,pb    //pa-->int*    //pb-->int}

·typedef會(huì)產(chǎn)生一個(gè)新的變量類型

·#define只是在對(duì)應(yīng)位置進(jìn)行替換

因?yàn)閠ypedef產(chǎn)生了一個(gè)新的類型,pint為int*,但與int*也有不同

int pa,pb;//pa,pb都是int類型pint pa,pb;//pa,pb都是int*類型

而我們直接用int*進(jìn)行連續(xù)定義指針變量是錯(cuò)誤的

int*pa,pb;//錯(cuò)誤//pa是int*類型,而pb是int類型

你學(xué)會(huì)了嗎?我反正是學(xué)廢了。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7241

    瀏覽量

    91029
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71012
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4887

    瀏覽量

    70266

原文標(biāo)題:【C語言】指針進(jìn)階第一站:字符指針 & typedef關(guān)鍵字!

文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    跳轉(zhuǎn)表、指針數(shù)組和函數(shù)指針概念

    筆者能力有限,如果文中有不對(duì)的地方,還請(qǐng)各位朋友能及時(shí)地給我指出來,我將不勝感激,謝謝!
    發(fā)表于 09-15 14:14 ?510次閱讀

    淺析函數(shù)指針指針函數(shù)及其應(yīng)用

    什么是指針?相信大家對(duì)這個(gè)問題其實(shí)并不陌生,對(duì)指針概念也不會(huì)很模糊,在這里我也大概介紹一下。
    發(fā)表于 03-08 13:17 ?414次閱讀

    C語言中指針函數(shù)和函數(shù)指針概念及應(yīng)用示例

    在C語言中,指針函數(shù)和函數(shù)指針是強(qiáng)大且常用的工具。它們?cè)试S我們以更靈活的方式處理函數(shù)和數(shù)據(jù),進(jìn)而擴(kuò)展程序的功能。
    發(fā)表于 08-16 16:14 ?1523次閱讀

    C語言中多級(jí)指針概念和使用方法

    多級(jí)指針在C語言中是一種特殊的指針類型,它可以指向其他指針指針
    發(fā)表于 08-16 16:16 ?1461次閱讀

    C語言中空指針和野指針概念及產(chǎn)生原因

    在C語言中,指針是一種非常強(qiáng)大和靈活的工具,但同時(shí)也容易引發(fā)一些問題,其中包括空指針和野指針
    發(fā)表于 08-16 16:18 ?1892次閱讀

    指針的基本概念和運(yùn)算

    指針的基本概念和運(yùn)算8.1 指針的基本概念和運(yùn)算 8.2 指針與一維數(shù)組  8.3
    發(fā)表于 03-10 15:40

    2.5 C語言入職例程二:指針 精選資料分享

    2.5.1 強(qiáng)化指針概念指針是C語言中最基本且很重要的概念,某種程度上甚至可以說:指針是C語言的靈魂。不巧的是,我們公司新招聘的好多新人對(duì)C
    發(fā)表于 07-19 08:01

    嵌入式指針的相關(guān)資料分享

    一:嵌入式指針(embedded pointer) (1.1)嵌入式指針概念 一般應(yīng)用在內(nèi)存池相關(guān)的代碼中;成功使用嵌入式指針有個(gè)前提條件:(類A對(duì)象的sizeof必須不小于4字節(jié))
    發(fā)表于 12-20 07:11

    C51語言的指針、結(jié)構(gòu)、聯(lián)合和枚舉

     指針是C51語言的精華也是難點(diǎn)。本章主要介紹指針概念、定義指針的方法,介紹指向一維數(shù)組、二維數(shù)組、字符數(shù)組的指針使用方法,
    發(fā)表于 06-12 23:47 ?112次下載

    C語言指針概念詳解

    計(jì)算機(jī)中所有的數(shù)據(jù)都必須放在內(nèi)存中,不同類型的數(shù)據(jù)占用的字節(jié)數(shù)不一樣,例如 int 占用4個(gè)字節(jié),char 占用1個(gè)字節(jié)。
    的頭像 發(fā)表于 12-30 17:12 ?3268次閱讀
    C語言<b class='flag-5'>指針</b><b class='flag-5'>概念</b>詳解

    C++程序設(shè)計(jì)教程之指針的詳細(xì)資料說明

    本文檔詳細(xì)介紹的是C++程序設(shè)計(jì)教程之指針的詳細(xì)資料說明主要內(nèi)容包括了:1. 指針概念,2. 變量與指針,3. 數(shù)組與指針,4. 字符串與
    發(fā)表于 03-14 16:04 ?7次下載
    C++程序設(shè)計(jì)教程之<b class='flag-5'>指針</b>的詳細(xì)資料說明

    采用標(biāo)準(zhǔn)C的強(qiáng)制轉(zhuǎn)換和指針概念來實(shí)現(xiàn)訪問MCU的寄存器

    總結(jié)一下,就是(*(volatile unsigned char *)0x25)可以看作是一個(gè)普通變量,這個(gè)變量喲固定的地址,指向0x25。而0x25只是個(gè)常量,不是指針,更不是變量。
    的頭像 發(fā)表于 08-04 16:44 ?2103次閱讀

    C語言高階應(yīng)用:函數(shù)指針概念和使用方法

    一個(gè) GPRS 模塊聯(lián)網(wǎng)的小項(xiàng)目,使用過的同學(xué)大概知道 2G、4G、NB 等模塊要想實(shí)現(xiàn)無線聯(lián)網(wǎng)功能都需要經(jīng)歷模塊上電初始化、注冊(cè)網(wǎng)絡(luò)、查詢網(wǎng)絡(luò)信息質(zhì)量、連接服務(wù)器等步驟。
    發(fā)表于 04-01 10:26 ?1033次閱讀

    C語言進(jìn)階:函數(shù)指針概念和使用方法

    函數(shù)指針是指向函數(shù)的指針變量。 通常我們說的指針變量是指向一個(gè)整型、字符型或數(shù)組等變量,而函數(shù)指針是指向函數(shù)。 函數(shù)指針可以像一般函數(shù)一樣,
    發(fā)表于 05-02 06:17 ?6175次閱讀

    了解一下函數(shù)指針概念和使用方法

    在講回調(diào)函數(shù)之前,我們需要了解函數(shù)指針
    的頭像 發(fā)表于 11-06 10:04 ?1008次閱讀
    了解一下函數(shù)<b class='flag-5'>指針</b>的<b class='flag-5'>概念</b>和使用方法