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

C語言基礎之——指針(下)

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

前言:本篇文章將繼續(xù)講解有關指針的剩余基礎知識。

學無止境,一起加油叭?。?/p>


目錄

一.指針運算

1.指針 +- 整數

?2.指針的關系運算

?3.指針 - 指針

二.指針與數組

三.二級指針

四.指針數組

總結


一.指針運算

指針運算包括以下三種:

  • 指針 +- 整數
  • 指針 - 指針
  • 指針的關系運算

1.指針 +- 整數

我們嘗試用指針來打印一個數組的內容:

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr;//數組名是數組首元素的地址
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", *(p + i));
	}
	return 0;
}

我們在指針(上)中已經了解到,指針+-整數能夠實現指針的跳動。

那么我們便能夠根據這個辦法來實現打印數組:

p指向的是數組的首元素地址,那么p + i就等于是指針跳到了數組下標為 i 的元素的地址。

當然要實現這一點就必須要求數組和指針變量是相同的數據類型。

?2.指針的關系運算

指針與指針之間也是可以比較大小的,比較的是指針所指向的地址的大小。

#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p1 = &arr[4];
	int* p2 = &arr[5];
	if (*p1 > *p2)
	{
		printf("hehe");
	}
	else
	{
		printf("haha");
	}
	return 0;
}

例如我們來比較一下p1和p2的大小,結果如下:

C語言基礎之——指針(下),c語言,開發(fā)語言

?3.指針 - 指針

指針-指針的實現必須滿足兩個條件:

  1. 兩個指針指向同一塊區(qū)域(一個數組等)
  2. 兩個指針的類型相同
#include<stdio.h>
int main()
{
	int arr[10] = { 0 };
	int* p1 = &arr[9];
	int* p2 = &arr[0];
	printf("%d", p1 - p2);
	return 0;
}

來看上邊的代碼,會得到什么結果呢???

C語言基礎之——指針(下),c語言,開發(fā)語言

結果是9,有的小伙伴可能會猜是36,以為會是兩個指針之間的字節(jié)個數。

而實際上是兩個指針之間的元素個數。

二.指針與數組

C語言基礎之——指針(下),c語言,開發(fā)語言

如上代碼,之所以能把數組和指針聯系在一起,是因為數組名可以表示數組首元素的地址

但是數組名也有不同的用法:

  1. 1.sizeof(數組名):數組名單獨放在sizeof內部,數組名則代表整個數組,計算的是數組的大小,單位是字節(jié)。
  2. &數組名:數組名代表整個數組,取出的是數組的地址,數組的地址和數組首元素的地址值是一樣的,但是類型和意義是不一樣的。

C語言基礎之——指針(下),c語言,開發(fā)語言

?三.二級指針

?? ?int a = 5;
?? ?int* p = &a;//p是指針變量,一級指針變量
?? ?int** pp = &p;//pp是指針變量,二級指針變量

這樣也很像套娃對不對,所謂二級指針,也就是存放一級指針變量地址的指針。當然也可以有三級、四級、五級等等等等,但是一般都不會用到,包括二級指針也是不常用的。

那么二級指針如果想要找到a的地址,就要解引用兩次,第一次是找到*p的地址,第二次才能找到a的地址,所以要用** pp。

四.指針數組

聽到這個名字可能很多小伙伴會產生疑惑,這個到底是指針還是數組呢???

答案是數組。

我們聽說過整型數組,浮點型數組,字符數組,它們分別是存放整形、浮點型、字符的數組。

那么指針數組也就是存放指針變量的數組。

char* arr[5];//存放字符型指針的數組

int* arr2[4];//存放整型指針的數組

那么指針數組到底有什么用處呢???

我們可以用指針數組來模擬實現一個二維數組:

#include<stdio.h>
int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 6,7,8,9,10 };
	int arr3[] = { 11,12,13,14,15 };
	int* arr[] = { arr1,arr2,arr3 };
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

我們已經知道數組名是數組首元素的地址,所以我們就可以直接將數組名傳入指針數組中,這樣我們就相當于直接得到了三行元素,并且可以用相同的方法進行打?。?/p>

C語言基礎之——指針(下),c語言,開發(fā)語言

雖然模擬出來二維數組的樣子,但其實并不是真的二維數組,我們知道二維數組的元素內存地址都是相連的,但這里我們所創(chuàng)建的三個數組都是互不相連的。

總結

指針的基礎知識到這里就要結束啦,希望小伙伴們都能有所收獲!

喜歡博主文章的小伙伴們不要忘記一鍵三連哦!下期我們將對結構體展開講解,一起期待一下叭!

我們下期再見!?文章來源地址http://www.zghlxwxcb.cn/news/detail-675497.html

到了這里,關于C語言基礎之——指針(下)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • C語言基礎之——指針(下)

    C語言基礎之——指針(下)

    前言:本篇文章將繼續(xù)講解有關指針的剩余基礎知識。 學無止境,一起加油叭?。?目錄 一.指針運算 1.指針 +- 整數 ?2.指針的關系運算 ?3.指針 - 指針 二.指針與數組 三.二級指針 四.指針數組 總結 指針運算包括以下三種: 指針 +- 整數 指針 - 指針 指針的關系運算 我們嘗試用

    2024年02月11日
    瀏覽(25)
  • 【C語言基礎入門】二級指針、一維數組與指針、二維數組與指針

    【C語言基礎入門】二級指針、一維數組與指針、二維數組與指針

    在學習C語言的過程中,理解指針的概念是非常重要的。指針提供了一種直接訪問內存地址的方式,使得我們可以更加靈活地管理數據和內存。在本文中,我們將介紹C語言中的二級指針、一維數組與指針,并通過通俗易懂的語言和示例代碼來幫助讀者理解這些概念。 二級指針

    2024年02月05日
    瀏覽(29)
  • 【C語言基礎】:深入理解指針(三)

    【C語言基礎】:深入理解指針(三)

    指針系列回顧 : 【C語言基礎】:深入理解指針(一) 【C語言基礎】:深入理解指針(二) 一、冒泡排序 冒泡排序的核心思想就是:兩兩相鄰的元素進行比較。 可以看到,這段代碼對arr數組進行了排序,但這個代碼還有一些缺陷,那就是無論數組內部的元素是否有序,他都會循

    2024年03月10日
    瀏覽(26)
  • C語言-基礎語法學習-3 二級指針

    C語言-基礎語法學習-3 二級指針

    當涉及到多級指針時,C語言的靈活性和強大的指針功能可以得到充分的發(fā)揮。二級指針是指指向指針的指針,也被稱為指向指針的引用。 使用二級指針可以實現以下功能: 動態(tài)內存分配:通過二級指針可以動態(tài)地分配內存塊,并將其地址傳遞給其他函數或模塊進行操作。這

    2024年02月12日
    瀏覽(24)
  • C語言 指針聲明和定義 - C語言零基礎入門教程

    目錄 [一.指針簡介] [1.內存] [2.內存地址] [3.指針聲明] [二.指針類型] [三.聲明并初始化一個指針] [1.聲明指針并直接初始化 – 推薦] [2.先聲明指針在初始化 – 不推薦] [四.查看指針地址和指針的值] [五.NULL 指針 – 空指針] [六.重點總結] [七.猜你喜歡] 零基礎 C/C++ 學習路線推薦

    2024年03月22日
    瀏覽(44)
  • 【05】STM32·HAL庫開發(fā)-C語言基礎知識 | stdint.h介紹 | 位操作 | 宏定義的使用 | 條件編譯 | extern聲明 | typdef使用 | 結構體、指針、代碼規(guī)范介紹。

    【05】STM32·HAL庫開發(fā)-C語言基礎知識 | stdint.h介紹 | 位操作 | 宏定義的使用 | 條件編譯 | extern聲明 | typdef使用 | 結構體、指針、代碼規(guī)范介紹。

    ??stdint.h 是從 C99 中引進的一個標準 C 庫的文件,可以在MDK5的安裝路徑:D:MDK5.34ARMARMCCinclude中找到。 ??stdint.h 定義了很多類型別名,將有符號的char類型定義別名為int8_t等,使用此套別名有易于移植。 ??在MDK中需要配置才能支持使用S99標準, 默認是勾選的 。 ??只

    2024年02月08日
    瀏覽(18)
  • 逍遙自在學C語言 | 指針的基礎用法

    逍遙自在學C語言 | 指針的基礎用法

    在C語言中,指針是一項重要的概念,它允許我們直接訪問和操作內存地址。 可以說,指針是C語言一大優(yōu)勢。用得好,你寫程序如同趙子龍百萬軍中取上將首級;用得不好,則各種問題層出不窮,有種雙拳難敵四手的感覺。 本文將介紹指針的基礎知識,包括指針的定義、初始

    2024年02月09日
    瀏覽(32)
  • 【C語言初階】帶你輕松掌握指針基礎知識完結篇——野指針,指針運算,指針和數組,二級指針

    【C語言初階】帶你輕松掌握指針基礎知識完結篇——野指針,指針運算,指針和數組,二級指針

    君兮_的個人主頁 勤時當勉勵 歲月不待人 C/C++ 游戲開發(fā) Hello,這里是君兮_,今天繼續(xù)給大家更新0基礎入門C語言的內容,我們這次主要更新的依然是初階指針的基礎知識 廢話不多說咱們直接開始吧??! 概念: 野指針就是指針指向的位置是不可知的(隨機的、不正確的、沒有

    2024年02月16日
    瀏覽(22)
  • 【C語言】指針超級無敵金剛霹靂進階(但不難,還是基礎)

    【C語言】指針超級無敵金剛霹靂進階(但不難,還是基礎)

    點擊這里訪問我的博客主頁~~ 對指針概念還不太清楚的點擊這里訪問上一篇指針初階2.0 上上篇指針初階1.0 謝謝各位大佬的支持咯 今天我們一起來學習指針進階內容 指針變量有 字符指針變量 , 數組指針變量 和 函數指針變量 char* 叫做字符指針 一般這么來使用: 通過指針存

    2024年03月09日
    瀏覽(32)
  • 【C語言初階】帶你輕松掌握指針基礎知識(1)——指針的定義,類型,大小

    【C語言初階】帶你輕松掌握指針基礎知識(1)——指針的定義,類型,大小

    君兮_的個人主頁 勤時當勉勵 歲月不待人 C/C++ 游戲開發(fā) Hello,這里是君兮_,最近剛回家有點懶,從今天開始恢復更新并開始更新新的刷題系列,我們先繼續(xù)更新0基礎入門C語言的內容,今天給大家?guī)淼氖侵羔樂矫娴膬热?,但由于是初階,一些高級的用法我們放在進階篇再講

    2024年02月12日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包