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