C 基礎學習第一課 從C語言到C

2021-10-19 01:23:49 字數 2832 閱讀 3050

1,標頭檔案

c++為了相容c,支援所有c標頭檔案,但為了符合c++標準,所有的c標頭檔案都有乙個c++版本,主要的改變是【去掉 .h ,並在名字的前面加c】。如圖:

c語言c++

stdio.h

iostream(c++標準輸入輸出流標頭檔案)

math.h

cmath

string.h

cstring

stdlib.h

cstdlib……

2,命名空間

為了解決命名問題(如同名),引入了命名空間,它可作為附加資訊來區分不同庫中,相同名稱的函式

、類、變數等,本質上,命名空間就是定義了乙個範圍;

作用域限定符: '::'

;【若加在變數前面,則該變數輸出的值是全域性變數的值,不加則輸出區域性變數的值】

定義方式:

namespace name//name為自定義命名空間名

使用方式:

name:

:code;

//code可以是變數或函式

using name:

:code;

//只使用name下面的code

using namespace name;

//使用name裡面的所有內容

3,輸入輸出

c語言的輸入輸出主要用的是scanf和printf函式,而c++是使用類物件cin、cout進行輸入輸出;

例子:

#include

using namespace std;

intmain()

4,基礎資料型別

c++和c的基礎資料型別幾乎一樣;

char

short

intlong

(long

long

)float

double

unsigned

signed..

.

注意事項:

1

,c語言中雖然有bool布林型別,但需要包含標頭檔案

,而c++不用,可直接使用;

布林型別物件可以被賦予文字值true或false,所對應的關係就是真與假的概念,即(0,

1);2

,可以使用boolalpha列印出bool型別的true和false;

例子:bool compare

(int a,

int b)

cout << boolalpha <<

compare(4

,5)

5,強弱型別

c語言:強型別,弱檢查;

例子:

void

* p=

null

;int

* pl=p;

int* pn=

null

;void

* pp=pn;

//無報錯,無警告

c++:強型別,強檢查;

例子:

void

* p=

null

;int

* pl=p;

//錯誤: "初始化",無法從"void*"轉換到"int*";

//使用強制轉換可以解決

int* pn=

null

;void

* pp=pn;

//正確: 任意型別的指標都可以自動轉為萬能指標;

6,null與nullptr

null是給指標賦值的,表示指標指向的是空,nullptr在c++中替代了null;

在c語言中,null會被定義成(void*)null,但是c++不允許直接將void *隱式轉換到其他型別,null只好被定義為0;

7,const

1,c語言中的const並不是真正的常量,只是表示const修飾的變數為唯讀;

例子:

const

int age=19;

//age=99;//error 左值指定 const物件;

int* pn=

(int*)

&age;

*pn=99;

printf

("%d %d "

,age,

*pn)

;//輸出:99 99

//可知常量pn的值已經通過指標被間接改變;

2,c++中的const:

const

int age=18;

//age=99;//error "age"不能給常量賦值

int* pt=

(int*)

&age;

*pt=99;

printf

("%d %d "

,age,

*pn)

;//輸出:18 99

3,const引數不匹配的情況

例子:

void

show

(char

* name)

show

("king");

//error "const char*"型別的實參與 "char*"型別的形參不相容

//需要給函式形參加上const

char

* name=

"king"

;//error

const

char

* name=

"king"

;//true

C語言第一課

一 c基礎 進製的轉換 進製,進製機制 常見的有二進位制 八進位制 十進位制 十六進製制 例 二進位制 0101010 八進位制 0235 十進位制 9 十六進製制 0x8a 注 十六進製制後面的10 16由a,b,c,d,e,f代替 進製的區分 八進位制前面會加 0 十六進製制後面會加 0x 進製...

C語言第一課

開始的第乙個程式是乙個最簡單的程式,也就是最經典的hello world程式,它的功能為列印出hello world。程式的內容非常簡單,也是c語言編寫程式的基本結構框架。機構的電腦是基於虛擬機器的,其程式設計是gcc的。1.建立hello.c檔案 vim hello.c2.編寫hello worl...

c語言第一課

c語言第一課 型別 不僅定義了資料元素的內容,還定義了這類資料上可以進行的運算。編譯 執行程式 程式原始檔命名約定 cc cxx cpp cp及.c 從命令列執行編譯器 cc test1.cc 其中cc是編譯器程式的名字。編譯器生成乙個可執行檔案。windows系統將會生成可執行檔案 prog1.e...