最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中.與->的區(qū)別詳細解析

 更新時間:2023年06月19日 09:54:30   作者:One?day?  
這篇文章主要給大家介紹了關(guān)于C語言中.與->區(qū)別的相關(guān)資料,這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程序編譯不通過,需要的朋友可以參考下

->前是指針,而 . 前是結(jié)構(gòu)體變量

首先 a->b 的含義是 (*a).b ,所以他們是不同的,不過的確 -> 可以用 *. 實現(xiàn),不需要單獨一個運算符。 嗯,我這是說現(xiàn)代的標準化的 C 語義上來說, -> 可以用 *. 的組合實現(xiàn)。

早期的 C 有一段時間的語義和現(xiàn)代的 C 的語義不太一樣。

稍微有點匯編的基礎(chǔ)的同學(xué)可能知道,在機器碼和匯編的角度來看,不存在變量,不存在 struct 這種東西,只存在寄存器和一個叫做內(nèi)存的大數(shù)組。

結(jié)構(gòu)體變量用 . 來訪問結(jié)構(gòu)體的成員如下:

#include<stdio.h>
#include <malloc.h>
struct stu{
	int  age;
	stu* next;
};
int main(){
	stu s1;
    s1.age =18;
	return 0;
}

指向結(jié)構(gòu)體的指針用->來訪問其指向的結(jié)構(gòu)體的成員如:

#include<stdio.h>
#include <malloc.h>
struct stu{
	int  age;
	stu* next;
};
int main(){
	stu *phead = (stu*)malloc(sizeof(stu));//測試代碼 
    phead->age=18;
	phead->next = NULL;
	stu* p = phead;
	return 0;
}

簡單點說就是: 

1、A->a表示A是指向結(jié)構(gòu)體的指針 

2、A.a表示A是結(jié)構(gòu)體 

3、A->a等效于(*A).a

4、A.B則A為對象或者結(jié)構(gòu)體;

5、A->B則A為指針,->是成員提取,A->B是提取A中的成員B,A只能是指向類、結(jié)構(gòu)、聯(lián)合的指針;

6、(*a).b 等價于 a->b。"."一般情況下讀作"的”; “->”一般讀作"指向的結(jié)構(gòu)體的"。也就是說在結(jié)構(gòu)中,運算符->是運算符*和運算符.的結(jié)合

7、“->”是指向結(jié)構(gòu)體成員運算符。“.”是斷點符號,不屬于運算符。

8、“->”所指向的是結(jié)構(gòu)體或?qū)ο蟮氖椎刂贰?ldquo;.”所指向的是結(jié)構(gòu)體或?qū)ο蟆?/strong>

9、“->”的用處是使用一個指向以便訪問結(jié)構(gòu)體或?qū)ο笃鋬?nèi)成員。“.”的用處是使用一個指向以便訪問結(jié)構(gòu)體或?qū)ο蟆?/strong>

此外,(*a).b 等價于 a->b。

"."一般情況下讀作"的”。

“->”一般讀作"指向的結(jié)構(gòu)體的"。

總結(jié)

到此這篇關(guān)于C語言中.與-&gt;區(qū)別的文章就介紹到這了,更多相關(guān)C語言.與-&gt;的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過GDB學(xué)習(xí)C語言的講解

    通過GDB學(xué)習(xí)C語言的講解

    今天小編就為大家分享一篇關(guān)于通過GDB學(xué)習(xí)C語言的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 使用C語言實現(xiàn)掃雷小游戲

    使用C語言實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了使用C語言實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++實現(xiàn)簡單的圖書管理系統(tǒng)

    C++實現(xiàn)簡單的圖書管理系統(tǒng)

    本文給大家分享的是使用C++實現(xiàn)簡單的圖書管理系統(tǒng)的代碼,本系統(tǒng)采用了面向?qū)ο蟮某绦蛟O(shè)計方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • 如何實現(xiàn)socket網(wǎng)絡(luò)編程的多線程

    如何實現(xiàn)socket網(wǎng)絡(luò)編程的多線程

    首先,學(xué)好計算機網(wǎng)絡(luò)知識真的很重要。雖然,學(xué)不好不會影響理解下面這個關(guān)于宏觀講解,但是,學(xué)好了可以自己打漁吃,學(xué)不好就只能知道眼前有魚吃卻打不到漁。在Java中網(wǎng)絡(luò)程序有2種協(xié)議:TCP和UDP,下面可以和小編一起學(xué)習(xí)下
    2019-05-05
  • C語言中volatile關(guān)鍵字的作用及說明

    C語言中volatile關(guān)鍵字的作用及說明

    文中主要介紹了C語言中volatile關(guān)鍵字的含義和使用場景,volatile是一個類型修飾符,主要用來修飾被不同線程訪問和修改的變量,它的作用是防止編譯器對代碼進行優(yōu)化,確保每次直接讀取原始內(nèi)存地址的值
    2024-10-10
  • C++中rapidjson將map轉(zhuǎn)為json的方法

    C++中rapidjson將map轉(zhuǎn)為json的方法

    今天小編就為大家分享一篇關(guān)于C++中rapidjson將map轉(zhuǎn)為json的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • C++實現(xiàn)修改函數(shù)代碼HOOK的封裝方法

    C++實現(xiàn)修改函數(shù)代碼HOOK的封裝方法

    這篇文章主要介紹了C++實現(xiàn)修改函數(shù)代碼HOOK的封裝方法,有助于深入了解C++的HOOK原理,需要的朋友可以參考下
    2014-10-10
  • C程序中唯一序列號的生成實例詳解

    C程序中唯一序列號的生成實例詳解

    這篇文章主要介紹了C程序中唯一序列號的生成實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言實現(xiàn)通訊錄系統(tǒng)

    C語言實現(xiàn)通訊錄系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)通訊錄系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Pthread并發(fā)編程之線程基本元素和狀態(tài)的剖析

    Pthread并發(fā)編程之線程基本元素和狀態(tài)的剖析

    本篇文章主要給大家介紹pthread并發(fā)編程當(dāng)中關(guān)于線程的基礎(chǔ)概念,并且深入剖析進程的相關(guān)屬性和設(shè)置,以及線程在內(nèi)存當(dāng)中的布局形式,幫助大家深刻理解線程
    2022-11-11

最新評論

东城区| 白朗县| 大关县| 肇州县| 云林县| 康马县| 明溪县| 鸡泽县| 昌宁县| 大竹县| 如东县| 平塘县| 任丘市| 天气| 温宿县| 馆陶县| 章丘市| 苍南县| 双柏县| 宿松县| 隆回县| 宁河县| 栾城县| 左云县| 府谷县| 丰城市| 紫阳县| 仁寿县| 邵阳市| 冀州市| 海林市| 开封县| 台湾省| 澜沧| 商城县| 呼玛县| 屯昌县| 青浦区| 长治市| 鹤山市| 泗水县|