c語言的冷知識有哪些_C語言的優(yōu)缺點 IT知識
電腦知識 由優(yōu)爾供稿C語言不但執(zhí)行效率高而且可移植性好,可以用來開發(fā)應(yīng)用軟件、驅(qū)動、操作系統(tǒng)等。C語言也是其它眾多高級語言的鼻祖語言,所以說學(xué)習(xí)C語言是進入編程世界的必修課。下面是9252兒童網(wǎng)小編為大家整理的c語言的冷知識,希望對你們有幫助。
C語言冷知識
C語言屬強類型語言
(1)編程語言分2種:強類型語言和弱類型語言。強類型語言中所有的變量都有自己固定的類型,這個類型有固定的內(nèi)存占用,有固定的解析方法;弱類型語言中沒有類型的概念,所有變量全都是一個類型(一般都是字符串的),程序在用的時候再根據(jù)需要來處理變量。
(2)C語言就是典型的強類型語言,C語言中所有的變量都有明確的類型。因為C語言中的一個變量都要對應(yīng)內(nèi)存中的一段內(nèi)存,編譯器需要這個變量的類型來確定這個變量占用內(nèi)存的字節(jié)數(shù)和這一段內(nèi)存的解析方法。
4.8.4.3、void類型的本質(zhì)
(1)void類型的正確的含義是:不知道類型,不確定類型,還沒確定類型。
(2)void a;定義了一個void類型的變量,含義就是說a是一個變量,而且a肯定有確定的類型,只是目前我還不知道a的類型,還不確定,所以標(biāo)記為void。
4.8.4.4、為什么需要void類型
(1)什么情況下需要void類型?其實就是在描述一段還沒有具體使用的內(nèi)存時需要使用void類型。
(2)void的一個典型應(yīng)用案例就是malloc的返回值。我們知道m(xù)alloc函數(shù)向系統(tǒng)堆管理器申請一段內(nèi)存給當(dāng)前程序使用,malloc返回的是一個指針,這個指針指向申請的那段內(nèi)存。malloc剛申請的這段內(nèi)存尚未用來存儲數(shù)據(jù),malloc函數(shù)也無法預(yù)知這段內(nèi)存將來被存放什么類型的數(shù)據(jù),所以malloc無法返回具體類型的指針,解決方法就是返回一個void 類型,告訴外部我返回的是一段干凈的內(nèi)存空間,尚未確定類型。所以我們在malloc之后可以給這段內(nèi)存讀寫任意類型的數(shù)據(jù)。
(3)void 類型的指針指向的內(nèi)存是尚未確定類型的,因此我們后續(xù)可以使用強制類型轉(zhuǎn)換強行將其轉(zhuǎn)為各種類型。這就是void類型的最終歸宿,就是被強制類型轉(zhuǎn)換成一個具體類型。
(4)void類型使用時一般都是用void ,而不是僅僅使用void。
C語言的概述
1. 為什么要學(xué)習(xí)C語言?
第一代語言:機器語言
第二代語言:匯編語言
第三代語言:高級語言
1. 結(jié)構(gòu)化語言:C ,Basic,缺陷:數(shù)據(jù)結(jié)構(gòu)和操作是分離的
2. 面向?qū)ο蟮恼Z言:C++, Java
函數(shù)和指針非常重要
2. C語言的發(fā)展過程:
1983年, ANSI C
1987, ANSI C 87
1994, C99
C語言的優(yōu)缺點
優(yōu)點:代碼量小,速度快,功能強大
缺點:危險性高,開發(fā)周期長,可移植性不強。
怎么樣學(xué)習(xí)C語言?
學(xué)習(xí)C語言的目標(biāo)?
常見的問題答疑
學(xué)習(xí)java語言為什么建議先學(xué)習(xí)C語言?
如果沒有學(xué)習(xí)過計算機專業(yè)課程,能否學(xué)懂C語言?
英語和數(shù)學(xué)不好,能學(xué)習(xí)C語言嗎?
3. 課程計劃
基本編程知識
數(shù)據(jù)類型
運算符和表達(dá)式
流程控制
函數(shù)
組件
指針
變量的作用域和存儲方式
擴展數(shù)據(jù)類型
專題
字符串的處理
進制轉(zhuǎn)換
補碼
動態(tài)內(nèi)存分配
鏈表的使用
轉(zhuǎn)義字符? 轉(zhuǎn)義字符的意義 ASCII碼?
\n? 回車換行? 10?
\t? 橫向跳到下一制表位置? 9?
\b? 退格? 8?
\r? 回車? 13?
\f? 走紙換頁? 12?
\\? 反斜線符"\"? 92?
\'? 單引號符? 39?
\”? 雙引號符? 34?
\a? 鳴鈴? 7?
\ddd? 1~3位八進制數(shù)所代表的字符?
\xhh? 1~2位十六進制數(shù)所代表的字符?
(五)字符串常量?
C語言中,以雙引號括起來的,由若干個字符組成的序列即為字符串常量。?
例:“ni hao” “happy”等等。?
(六)符號常量?
符號常量是由宏定義“#define“定義的常量,在C程序中可用標(biāo)識符代表一個常量。?
例:計算圓的面積的c程序。?
#include?
#define PI 3.14159?
main()?
{?
float r,s;?
r=12.5;?
S=PI _r_r;?
printf(“s= %f ”,s);?
}?
說明:?#define 是宏定義,此程序中所有出現(xiàn)PI的地方都代表3.14159,同時PI稱為符號常量。習(xí)慣上我們用大寫字母來表示符號常量,小寫字母表示變量,這樣比較容易區(qū)別。?
類型的自動轉(zhuǎn)換和強制轉(zhuǎn)換
當(dāng)同一表達(dá)式中各數(shù)據(jù)的類型不同時,編譯程序會自動把它們轉(zhuǎn)變成同一類型后再進行計算。轉(zhuǎn)換優(yōu)先級為:?
char < int < float < double?
即左邊級別“低“的類型向右邊轉(zhuǎn)換。具體地說,若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是double型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成double型,且計算結(jié)果也是double型;若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是float型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成float型,且計算結(jié)果也是float型。?
在做賦值運算時,若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉(zhuǎn)換;當(dāng)右邊的類型高于左邊的類型時,則在轉(zhuǎn)換時對右邊的數(shù)據(jù)進行截取。?
除自動轉(zhuǎn)換外,還有強制轉(zhuǎn)換,表示形式是:?
( 類型 )(表達(dá)式);?
例:(int)(a+b)?
討論:當(dāng)a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少??
- 計算機基礎(chǔ)知識有哪些_計算機基礎(chǔ)操作入門
- java面試基礎(chǔ)知識有哪些_Java工程師需要具
- java編程的基礎(chǔ)理論知識有哪些_java程序員
- IT程序員必備的基礎(chǔ)知識有哪些_計算機硬件
- java程序設(shè)計基礎(chǔ)知識有哪些_Java編程語言
- it運維基礎(chǔ)知識有哪些_it基礎(chǔ)知識
- it的分類及基礎(chǔ)知識_計算機的應(yīng)用領(lǐng)域
- c語言重要知識點有哪些_C語言基本算法
- java基礎(chǔ)知識有哪些_Java程序員必須掌握知
- IT運維管理知識有哪些_it基礎(chǔ)知識
- IT基礎(chǔ)知識有哪些_IT互聯(lián)網(wǎng)基礎(chǔ)知識術(shù)語
- c語言基礎(chǔ)知識都有哪些_C語言的概述