欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言 從根本上理解數(shù)組

 更新時間:2022年04月19日 10:11:03   作者:清風自在 流水潺潺  
數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計算機內存里連續(xù)存放,地址編號最低的存儲單元存放數(shù)組的起始元素,地址編號最高的存儲單元存放數(shù)組的最后一個元素

一、數(shù)組的概念

數(shù)組是相同類型的變量的有序集合

二、數(shù)組的大小

  • 數(shù)組在一片連續(xù)的內存空間中存儲元素
  • 數(shù)組元素的個數(shù)可以顯示或隱式指定

下面看一段數(shù)組初始化的代碼:

#include <stdio.h>
 
int main()
{
    int a[5] = {1, 2};
    int b[] = {1, 2};
    
    printf("a[2] = %d\n", a[2]);
    printf("a[3] = %d\n", a[3]);
    printf("a[4] = %d\n", a[4]);
    
    printf("sizeof(a) = %d\n", sizeof(a));
    printf("sizeof(b) = %d\n", sizeof(b));
    printf("count for a: %d\n", sizeof(a)/sizeof(int));
    printf("count for b: %d\n", sizeof(b)/sizeof(int));
    
    return 0;
}

下面為輸出結果:

注意數(shù)組長度的計算,sizeof(數(shù)組名) / sizeof(數(shù)組元素類型)

三、數(shù)組地址與數(shù)組名

  • 數(shù)組名代表數(shù)組首元素的地址
  • 數(shù)組的地址需要用取地址符 & 才能得到
  • 數(shù)組首元素的地址值與數(shù)組的地址值相同
  • 數(shù)組首元素的地址與數(shù)組的地址是兩個不同的概念

下面看一段數(shù)組名和數(shù)組地址的代碼:

#include <stdio.h>
 
int main()
{
    int a[5] = { 0 };
 
    printf("a = %p\n", a);
    printf("&a = %p\n", &a);
    printf("&a[0] = %p\n", &a[0]);
    
    return 0;
}

下面為輸出結果:

注意:數(shù)組首元素的地址與數(shù)組的地址是兩個不同的概念,雖然它們的地址值是一樣的,但是意義確是完全不同的,不同之處在于它們所占用的內存空間長度是不一樣的。

四、數(shù)組名的盲點

數(shù)組名可以看做一個指針常量

數(shù)組名“指向”的是內存中數(shù)組首元素的起始位置

數(shù)組名不包含數(shù)組的長度信息

在表達式中數(shù)組名只能作為右值使用

只有在下列場合中數(shù)組名不能看做指針常量

  • 數(shù)組名作為 sizeof 操作符的參數(shù)
  • 數(shù)組名作為 & 運算符的參數(shù)

下面通過一段代碼,說明數(shù)組和指針并不相同:

#include <stdio.h>
 
int main()
{
    int a[5] = {0};
    int b[2];
    int* p = NULL;
    
    p = a;
    
    printf("a = %p\n", a);
    printf("p = %p\n", p);
    printf("&p = %p\n", &p);
    printf("sizeof(a) = %d\n", sizeof(a));
    printf("sizeof(p) = %d\n", sizeof(p));
   
    printf("\n");
 
    p = b;
    
    printf("b = %p\n", b);
    printf("p = %p\n", p);
    printf("&p = %p\n", &p);
    printf("sizeof(b) = %d\n", sizeof(b));
    printf("sizeof(p) = %d\n", sizeof(p));
    
    //b = a;
  
    return 0;
}

輸出結果如下:

sizeof(a) = 20,sizeof(p) = 4,這就說明了指針和數(shù)組是兩個不相同的東西。

五、小結

  • 數(shù)組是一片連續(xù)的內存空間
  • 數(shù)組的地址和數(shù)組首元素的地址意義不同
  • 數(shù)組名在大多數(shù)情況下被當成指針常量處理
  • 數(shù)組名其實并不是指針,不能將其等同于指針

到此這篇關于C語言 從根本上理解數(shù)組的文章就介紹到這了,更多相關C語言 數(shù)組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于一致性hash算法 C++語言的實現(xiàn)詳解

    基于一致性hash算法 C++語言的實現(xiàn)詳解

    在《基于一致性hash算法(consistent hashing)的使用詳解》一文中已經(jīng)介紹了一致性hash的基本原理,本文將會對其具體實現(xiàn)細節(jié)進行描述,并用c++語言對一致性hash進行了簡單的實現(xiàn)
    2013-05-05
  • c語言的指針數(shù)組詳解

    c語言的指針數(shù)組詳解

    這篇文章主要為大家介紹了c語言的指針數(shù)組,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C語言基于EasyX庫實現(xiàn)有顏色彈跳小球

    C語言基于EasyX庫實現(xiàn)有顏色彈跳小球

    這篇文章主要為大家詳細介紹了C語言基于EasyX庫實現(xiàn)有顏色彈跳小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++實現(xiàn)LeetCode(168.求Excel表列名稱)

    C++實現(xiàn)LeetCode(168.求Excel表列名稱)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(168.求Excel表列名稱),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • C++11中std::thread線程實現(xiàn)暫停(掛起)功能

    C++11中std::thread線程實現(xiàn)暫停(掛起)功能

    本文主要介紹了C++11中std::thread線程實現(xiàn)暫停(掛起)功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 淺析c#中WebBrowser控件的使用方法

    淺析c#中WebBrowser控件的使用方法

    以下是對c#中WebBrowser控件的使用方法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • C++深度優(yōu)先搜索的實現(xiàn)方法

    C++深度優(yōu)先搜索的實現(xiàn)方法

    這篇文章主要介紹了C++深度優(yōu)先搜索的實現(xiàn)方法,是數(shù)據(jù)結構中非常重要的一種算法,需要的朋友可以參考下
    2014-08-08
  • OpenCV圖像旋轉Rotate的詳細介紹

    OpenCV圖像旋轉Rotate的詳細介紹

    這篇文章主要介紹了OpenCV圖像旋轉Rotate,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C語言循環(huán)結構深入刨析

    C語言循環(huán)結構深入刨析

    C語言條件控制語句選擇結構,是屬于計算機的語言編輯,有在C語言條件控制中的語句選擇結構的存在,即是C語言條件控制語句選擇結構,循環(huán)控制語句是一個基于C語言的編程語句,該語句主要有while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句來實現(xiàn)循環(huán)結構
    2022-08-08
  • C語言深入細致講解動態(tài)內存管理

    C語言深入細致講解動態(tài)內存管理

    動態(tài)內存是相對靜態(tài)內存而言的。所謂動態(tài)和靜態(tài)就是指內存的分配方式。動態(tài)內存是指在堆上分配的內存,而靜態(tài)內存是指在棧上分配的內存,本文帶你深入探究C語言中動態(tài)內存的管理
    2022-05-05

最新評論