


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
前述C語言中存在這樣一種類型,名叫不完整類型(Incompletetypes),雖然我們可能不太理解,或許也沒有仔細研究過,但是在實際的編程中,我們卻已經用到過很多次了。接下來我們就共同學習一下,內容比較簡單,一看就懂,一學就會。不完整類型不完整類型(Incompletetypes)是缺少足夠信息來確定該類型對象大小的對象類型,不完整類型可以在翻譯單元的某些點完整。聽起來可能比較繞口,簡單來說就是,不完整類型是不知道對象所占空間大小,此時是無法使用sizeof()的。但是可以通過后續再補充完整。不完整類型主要有下面三種。已聲明但未定義的類類型內容未知的結構體或聯合體類型。在同一作用域的后面,定義同一結構體或聯合體的內容的聲明能使之完整。struct
node
{
struct
node
*next;
//
struct
node
在此點不完整
};
//
struct
node
在此點完整未知邊界數組簡單來說就是大小未知的數組,之后指定大小的聲明能使之完整,接下來看一個示例。#include<stdio.h>
extern
int
a[];
//此時a類型為int
[]是不完整類型
void
fun1()
{
printf("sizeof
a
=
%d\r\n",
sizeof(a));
//
error
a[0]
=
88;
//OK
}
int
a[3]
=
{1,2,3};
//此時a類型為int
[3]是完整類型
void
fun2()
{
printf("sizeof
a
=
%d\r\n",
sizeof(a));
//OK
a[0]
=
3;
//OK
}
int
main(int
argc
,char
**argv)
{
fun1();
fun2();
return
0;
}如果在fun1函數中打印數組a的長度編譯時就會報如下錯誤:invalidapplicationof'sizeof'toincompletetype'int[]'因為此時a為不完整類型,即不知道a的長度,所以無法使用sizeof。但有的小伙伴卻有疑問了,為什么在fun1函數中卻可以設置a[0]的值?雖然這里使用了數組a,但是它會被轉換成指向其首元素的指針,而且這個轉換并不需要知道數組的大小。而且C語言也不會檢查數組是否越界,他選擇相信程序員,把重心放在了程序的執行效率上,這也是為什么C語言執行效率高運行快的原因。感興趣可以參考:為什么C語言執行效率高,運行快?其實在外部聲明的時候可以完整聲明,例如上述示例我可以改為:externinta[3];此時在編譯程序fun1就不會有編譯報錯提示了。因為數組元素不能具有未知邊界數組類型,所以多維數組只能在第一個維度中有未知邊界:extern
int
a[][2];
//OK:邊界未知的含有【2個int元素的數組】元素的數組
extern
int
b[2][];
//error:數組有不完整類型void類型可由CV限定,有別于其他不完整類型,vo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 森林防火培訓
- 變配電工程培訓課件第二章第一節
- 太原匯報煤礦水害防治新技術
- 2024模具設計師考試重點試題及答案
- 開復工安全教育培訓
- 2025無線網絡租賃合同
- 前沿趨勢 體育經紀人試題及答案更新
- 2024游泳救生員考試難點探討試題及答案
- 農作物繁育員發展策略試題及答案
- 2024年裁判員考試高分秘籍與試題及答案分享
- 廣東省廣州市廣外、鐵一、廣附三校2022-2023學年高一下學期期末聯考物理試題(無答案)
- 《通達信炒股軟件從入門到精通》讀書筆記模板
- 科研誠信問題課件
- 高頻電刀之負極板的正確使用方法
- 關于高中班級管理論文
- 21秋國家開放大學《公共部門人力資源管理》單元自測題參考答案
- 東北抗聯英雄人物智慧樹知到答案章節測試2023年牡丹江師范學院
- 2023年鄭州信息科技職業學院單招考試職業適應性測試模擬試題及答案解析
- 國開電大2022年《小學數學教學研究》形考任務1-4答
- 精神科護士分層次培訓計劃
- (貴陽專版)中考英語復習 第3部分 中考題型攻略篇 題型7 任務型閱讀(精講)
評論
0/150
提交評論