第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

解鎖即可觀看《物聯(lián)網(wǎng)/嵌入式工程師》完整課程視頻

物聯(lián)網(wǎng)/嵌入式工程師

重磅升級:新增硬件電路設(shè)計與實戰(zhàn),讓你軟硬通吃,同級PK無敵!行業(yè)風口、政策傾斜,新晉熱門高薪不內(nèi)卷!0基礎(chǔ)一站式就業(yè)完整路徑,搶占先發(fā)優(yōu)勢!

【第1周】邁進供不應(yīng)求的物聯(lián)網(wǎng)/嵌入式行業(yè)大門
【第2周】C語言進階-編程思想
【第3周】C語言高級進階
【第4周】C語言項目實戰(zhàn)與《階段筆試》
【第5周】數(shù)據(jù)結(jié)構(gòu)-線性結(jié)構(gòu)、非線性結(jié)構(gòu)等
【第6周】排序與復雜度&數(shù)據(jù)結(jié)構(gòu)項目實戰(zhàn)
【第7周】Shell編程和Makefile工程管理
【第8周】Linux文件IO和標準IO
【第9周】Linux下文件操作項目實踐與階段評測
【第10周】Linux 多進程、多線程、IO模型
【第11周】Linux 項目實戰(zhàn)-實現(xiàn)并發(fā)服務(wù)器模型與企業(yè)筆試
【第12周】網(wǎng)絡(luò)基礎(chǔ)和UDP Socket編程
【第13周】TCP Socket編程和WireShark抓包分析
【第14周】網(wǎng)絡(luò)編程項目實戰(zhàn)-網(wǎng)絡(luò)視頻監(jiān)控與企業(yè)筆試
【第15周】從C到C++
【第16周】軟件設(shè)計模式與C++11新特性
【第17周】項目實戰(zhàn)-C++語言實現(xiàn)五子棋游戲與企業(yè)筆試
【第18周】嵌入式產(chǎn)品人機交互必備-QT框架
【第19周】項目實戰(zhàn)-QT開發(fā)音樂播放器
【第20周】智能硬件開發(fā)-ARM核介紹和基礎(chǔ)外設(shè)
【第21周】智能硬件開發(fā)-單片機常用外設(shè)
【第22周】stm32芯片-智能硬件項目實戰(zhàn)與企業(yè)筆試
【第23周】大廠必備- linux內(nèi)核與文件系統(tǒng)移植
【第24周】嵌入式開發(fā)-系統(tǒng)移植-bootloader、yocto
【第25周】嵌入式底層核心技能-Linux設(shè)備驅(qū)動初級
【第26周】嵌入式底層核心技能-Linux設(shè)備驅(qū)動中級
【第27周】嵌入式底層核心技能-Linux設(shè)備驅(qū)動高級1
【第28周】嵌入式底層核心技能-Linux設(shè)備驅(qū)動高級2
【第29周】智能家居項目實戰(zhàn)之Linux智能網(wǎng)關(guān)端開發(fā)
【第30周】智能家居項目實戰(zhàn)之STM32單片機設(shè)備端開發(fā)
【第31周】人臉指紋識別考勤機設(shè)計與實戰(zhàn)
【第32周】硬件電路設(shè)計-電路基礎(chǔ)知識
【第33周】STM32最小系統(tǒng) - 硬件電路設(shè)計實戰(zhàn)項目(一)
【第34周】CAN總線分析儀 - 硬件電路設(shè)計實戰(zhàn)項目(二)
【第35周】4路輸入輸出控制器 - 硬件電路設(shè)計實戰(zhàn)項目(三)
【第36周】8路邏輯分析儀 - 硬件電路設(shè)計實戰(zhàn)項目(四)
【第37周】項目答辯和就業(yè)指導&獨立開發(fā)階段-三大熱門領(lǐng)域項目
章節(jié)
問答
課簽
筆記
評論
占位
占位

指針和數(shù)組的姻緣

數(shù)組篇

在前面及小結(jié)中,我們學習了指針和數(shù)組的概念,看起來這是兩個完全不同的東西。但其實他們兩者是緊密相關(guān)的,本小結(jié)我們就來探討一下指針和數(shù)組的聯(lián)系。

我們在定義數(shù)組的時候,常常這樣定義,int arr[5];

在 C++ 中,數(shù)組表示的是一段連續(xù)的內(nèi)存存儲空間

如上圖,每個元素之間是沒有空隙的,這樣每個元素的內(nèi)存地址,其實也是有規(guī)律可循的??梢詫戇@樣一個程序,來驗證我們的想法:

#include <stdio.h>

int main(int argc,char **argv)
{
    int array[5];
    printf("array[0]: %p\n", &array[0]); // %p 用來打印數(shù)組的地址
    printf("array[1]: %p\n", &array[1]);
    printf("array[2]: %p\n", &array[2]);
    printf("array[3]: %p\n", &array[3]);
    printf("array[4]: %p\n", &array[4]);

    return 0;
}

程序運行結(jié)果如下:

array[0]: 0x7ffee9d81490
array[1]: 0x7ffee9d81494
array[2]: 0x7ffee9d81498
array[3]: 0x7ffee9d8149c
array[4]: 0x7ffee9d814a0

指針的地址以16進制的方式輸出,可以看出,這幾個地址中,每兩個相鄰的地址都相差 4 ,而每一個元素都是 int類型,int 占 4 個字節(jié)大小,說明他們確實是緊密相連的。

驗證了數(shù)組的地址之后,再來看看數(shù)組是如何訪問數(shù)組中的元素的。假設(shè)我們想要訪問第 2 個元素(從 0 開始)

array[1];

那么 C++ 在碰到這行代碼的時候,是先拿到第 2 個元素的地址,然后通過地址去訪問元素,那么如何拿到第二個元素的地址呢?剛剛的實驗證明,數(shù)組中元素的地址都是等差的,所以只要拿到第一個元素的地址,再加上相應(yīng)元素的偏差,就可以拿到第二個元素的地址了。

那么,對于數(shù)組來說,第一個元素的地址是什么的?答案是數(shù)組名。

我們再嘗試寫一個測試程序

#include <stdio.h>

int main(int argc,char **argv)
{
    int array[5];
    printf("array: %p\n", array);
    printf("array[0]: %p\n", &array[0]); // %p 用來打印數(shù)組的地址
    printf("array[1]: %p\n", &array[1]);
    printf("array[2]: %p\n", &array[2]);
    printf("array[3]: %p\n", &array[3]);
    printf("array[4]: %p\n", &array[4]);

    return 0;
}

程序運行結(jié)果如下:

array: 0x7ffeefa29490
array[0]: 0x7ffeefa29490
array[1]: 0x7ffeefa29494
array[2]: 0x7ffeefa29498
array[3]: 0x7ffeefa2949c
array[4]: 0x7ffeefa294a0

我們發(fā)現(xiàn),直接輸出 array 和首元素的地址,是一模一樣的,那么就可以得出一個結(jié)論:數(shù)組名是一個指向數(shù)組首元素的指針

但是這個指針和我們常見的指針有一些不一樣的地方,這個指針是一個常量,所以我們是不可以對其進行修改的。也就是說,我們不能對其進行 array = p 或者 array++ 這樣包含重新賦值的操作,但是我們?nèi)匀豢梢杂弥羔樀挠梅▉聿僮魉?/p>

例如,使用指針的加減法來訪問對應(yīng)的元素

#include <stdio.h>

int main(int argc,char **argv)
{
    int array[5];
    *(array + 2) = 1;

    return 0;
}

代碼中的 *(array + 2) = 1; 就等價于 array[2] = 1;

指針篇

我們在前面講過 malloc 分配內(nèi)存的用法。來看一個例子

#include <stdio.h>

int main(int argc,char **argv)
{
    int * p = (int *)malloc(5 * sizeof(int));

    free(p);
    return 0;
}

在上面的程序中,我們分配出來了一個 5 個 int 大小的儲存空間:

在這塊儲存空間內(nèi),可以存放 5 個 int 類型的數(shù)字,假如想要訪問第 3 個數(shù)字,我們可以把指針向后移動兩個元素的位置,寫成 *(p + 2)

那么指針可不可以按照數(shù)組的訪問方式去訪問呢?p[2]

其實也是可以的,p[2]*(p + 2)在這里是等價的。

任務(wù)

?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數(shù)過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務(wù)號

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關(guān)注公眾號
關(guān)注后,及時獲悉本課程動態(tài)

舉報

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?