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

C語言不定長數(shù)組及初始化方法

 更新時間:2018年07月19日 14:40:23   作者:wanghao19920907  
今天小編就為大家分享一篇C語言不定長數(shù)組及初始化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

C語言不支持不定長數(shù)組,要么malloc,要么在動態(tài)的指定它的長度

動態(tài)數(shù)組不能初始化,可使用memset

1.int* p = (int*)malloc(num);

2.int num = 5;

arr[num];

若使用arr[],則需要在后面對齊進行初始化,來指定長度,否則編譯可以通過,但是默認(rèn)只有一個單元,超過一個單元的長度,在后面程序的運行中有可能會被沖掉

int arr[] = {0};//定義了一個單元的數(shù)組,并不是不定長數(shù)組

最好不用使用arr[] = {0}來定義數(shù)組,定義數(shù)組之前應(yīng)要指定長度

int arr[256] = {0};

int a[256]={0};并不是把a的所有元素初始化為0,int a[256]={1};也不是把a所有的元素初始化為1.

數(shù)組可以用一個列值來初始化,例如

int v1[] ={1,2,3,4};
char v2[]={'a','b','c',0};

當(dāng)數(shù)組定義時沒有指定大小,當(dāng)初始化采用列表初始化了,那么數(shù)組的大小由初始化時列表元素個數(shù)決定。所以v1和v2分別為 int[4] 和char[4]類型。如果明確指定了數(shù)組大小,當(dāng)在初始化時指定的元素個數(shù)超過這個大小就會產(chǎn)生錯誤。例如:

char v3[2] ={'a','b',0}; //錯誤:太多的初始化值了
char v3[3] ={'a','b',0}; //正確

如果初始化時指定的的元素個數(shù)比數(shù)組大小少,剩下的元素都回被初始化為 0。

例如

int v5[8]={1,2,3,4};

等價于

int v5[8]={1,2,3,4,0,0,0,0};

注意沒有如下形式的數(shù)組賦值:

void f()
 {
 v4={'c','d',0}; //錯誤:不是數(shù)組賦值
}

顧名思義,集合(aggregate)就是多個事物聚集在一起,這個定義包括混合類型的集合:像struct和class等,數(shù)組就是單一類型的集合。

初始化集合往往既冗長又容易出錯,而C++中集合初始化(aggregate initialization)卻變得很方便而且很安全。當(dāng)產(chǎn)生一個集合對象時,要做的只是指定初始值就行了,然后初始化工作就由編譯器去承擔(dān)了。這種指定可以用幾種不同的風(fēng)格,它取決于正在處理的集合類型。但不管是哪種情況,指定的初值都要用大括號括起來。

比如一個內(nèi)部類型的數(shù)組可以這樣定義:

int a[5] = { 1, 2, 3, 4, 5 };

如果給出的初始化值多于數(shù)組元素的個數(shù),編譯器就會給出一條出錯信息。但如果給的初始化少于數(shù)據(jù)元素的個數(shù),那將會怎么樣呢?

例如:

int b[6] = {0};

這時,編譯器會把第一個初始化值賦給數(shù)組的第一個元素,然后用0賦給其余的元素。注意,如果定義了一個數(shù)組而沒有給出一列初始值時,編譯器并不會去做初始化工作。所以上面的表達式是將一個數(shù)組初始化為零的簡潔方法。

以上這篇C語言不定長數(shù)組及初始化方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ 標(biāo)準(zhǔn)模板庫 STL 順序容器詳解

    C++ 標(biāo)準(zhǔn)模板庫 STL 順序容器詳解

    這篇文章主要介紹了C++ 標(biāo)準(zhǔn)模板庫 STL 順序容器詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • C++中讀寫txt文件并分離字符的方法

    C++中讀寫txt文件并分離字符的方法

    今天小編就為大家分享一篇C++中讀寫txt文件并分離字符的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C++?Boost?Accumulators累加器詳細講解

    C++?Boost?Accumulators累加器詳細講解

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • 基于Qt編寫超精美自定義控件的示例代碼

    基于Qt編寫超精美自定義控件的示例代碼

    無論是哪一門開發(fā)框架,如果涉及到UI這塊,肯定需要用到自定義控件,本文為大家準(zhǔn)備了一些基于QT編寫的超精美自定義控件,需要的可以參考一下
    2023-07-07
  • Qt實現(xiàn)定時器的兩種方法分享

    Qt實現(xiàn)定時器的兩種方法分享

    這篇文章主要為大家詳細介紹了Qt中實現(xiàn)定時器的兩種不同方法,文中的示例代碼講解詳細,對我們了解Qt有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • C++并查集常用操作

    C++并查集常用操作

    并查集 是一種樹型的數(shù)據(jù)結(jié)構(gòu),用于處理一些不相加集合的合并和查詢問題。本文給大家分享C++并查集常用操作及算法實現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 尾遞歸詳細總結(jié)分析

    尾遞歸詳細總結(jié)分析

    關(guān)于遞歸操作,相信大家都已經(jīng)不陌生。簡單地說,一個函數(shù)直接或間接地調(diào)用自身,是為直接或間接遞歸
    2013-09-09
  • 利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖

    利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖

    這篇文章主要介紹了如何利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖的繪制,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定的幫助,感興趣的可以了解一下
    2022-05-05
  • c++中struct和class的區(qū)別小結(jié)

    c++中struct和class的區(qū)別小結(jié)

    在C++中,class和struct都是用于定義自定義數(shù)據(jù)類型的關(guān)鍵字,本文主要介紹了c++中struct和class的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • C語言折半查找法的由來及使用詳解

    C語言折半查找法的由來及使用詳解

    折半查找法也叫做?分查找,顧名思義就是把數(shù)據(jù)分成兩半,再判斷所查找的key在哪?半中,再重復(fù)上述步驟知道找到?標(biāo)key,下面這篇文章主要給大家介紹了關(guān)于C語言折半查找法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評論

邵东县| 灵寿县| 昌江| 潮安县| 印江| 依安县| 湟源县| 丹阳市| 龙江县| 广州市| 崇左市| 新竹县| 镇江市| 巴东县| 马公市| 高邑县| 资讯 | 新邵县| 博野县| 巫溪县| 凌云县| 湖口县| 大田县| 南京市| 改则县| 原阳县| 永年县| 闽清县| 泾川县| 建德市| 芦溪县| 宿松县| 靖远县| 青铜峡市| 冕宁县| 钟山县| 芮城县| 沅陵县| 都兰县| 彩票| 黄陵县|