本系列部落格基於董山海的[email protected] !
第一章:c/c++程式基礎
賦值語句:位運算與邏輯運算以及三元操作符的區別
c++域操作符,注意全域性變數和區域性變數的區別
++i
++i++
i:先 i
ii 自增 1
11,然後再列印 iii;
i ++
i++i+
+:先列印 i
ii,再 i
ii 自增 111;
− i−
−-i--
−i−−
:先列印 −i-i
−i,再 i
ii 自減 1
11;
內建資料型別的時候,i++
i++i+
+ 與 ++i
++i++
i 效率沒有區別;
自定義資料型別(比如類)的時候,++i
++i++
i 效率比較高;
有符號變數與無符號變數的值的轉換
#include
//char getchar (
int x,
int y)
//int main (
void
)
輸出結果為:
c 1=
1c1=1
c1=1
,c 2=
2c2=2
c2=2
,c 3=
2c3=2
c3=2
,c 4=
1c4=1
c4=1
首先,c語言中提供了很多資料型別,比如整型 (in
t)
(int)
(int
)等,它們的區別就是範圍的大小,int代表是有符號的整數,可正可負可為0。所以基本資料型別劃分為signed(有符號)和unsigned(無符號)兩大類。
整數是以原碼的形式儲存的,而負數是以補碼的形式儲存的,原碼大家都知道也就是它對應的二進位製碼,那什麼是補碼呢,就是原碼的反碼加1,反碼就是原碼的各位取反。
當乙個有符號和乙個無符號之間的數進行相加減會發生什麼呢?
是這樣的:a+b
a+ba+
b,首先把負數轉換為無符號數,然後在進行運算。
b
bb 轉換為無符號數就是對 b
bb 取模,232+
b2^+b
232+
b,結果為4294967286。
不使用任何中間變數就將a、b值進行交換,推薦異或交換方式。
#include
using
namespace std;
//使用加減法完成交換
void
swap1
(int
&a,int
&b)//使用區域性變數進行交換
void
swap2
(int
&a,int
&b)//使用異或運算完成交換
void
swap3
(int
&a,int
&b)
標準標頭檔案中的一些通用結構
#ifndef _incvxworksh
//這邊防止該標頭檔案被重複引用,如果不存在,則定義
#define _incvxworksh
#ifdef _cplusplus
//這邊表示使用的是c++編譯器
extern
"c"#endif
/* _incvxworksh */
標頭檔案引用中的 <> 與 " " 的區別
尖括號 <>:表示這個檔案是乙個工程或者標準標頭檔案,查詢過程會首先檢查預定義的目錄,我們可以通過設定搜尋路徑或者命令列來修改這些目錄;
引號" ":表示該檔案是使用者提供的標頭檔案,現在當前檔案目錄中尋找,然後在標準位置尋找檔案。
《C和C 程式設計師面試秘笈》中存在的錯誤
最近在複習c 面試的考點,所以購買了 c和c 程式設計師面試秘笈 這本書 人民郵電出版社2014.3 isbn 978 7 115 34113 6 因為我只選擇性的看了第1 2 3 5 6 7章 全文共12章 所以本文只列出了這幾個章節中存在的錯誤。頁碼面試題編號 存在的錯誤 p15面試題11 只會...
《C和C 程式設計師面試秘笈》第8章 資料結構
include include 1 單鏈表的 建立 鍊錶節點的定義 typedef struct node node typedef node ptrnode 建立單鏈表 輸入每個節點的資料,輸入0表示停止建立 node createsinglelist else tail next null li...
C和C 面試秘笈一 C和C 程式基礎
一 c 域操作符 首先看下面的這一段 include int value 0 void printvalue int main 如果我們直接編譯,編譯器會報錯,因為這是乙個c檔案,在c語言中還沒有域操作符 但是只要我們改變了標頭檔案。寫成c 檔案,然後編譯就可以正常輸出了。輸出的結果是 value ...