今天的筆試雖然很簡單,但是有些地方考察的很細。平常不注意看很容易忽略。所以基礎很重要。
問題一:關於#include <*.h> 與#include "*.h"的說法錯誤的是:()
(a)#include <*.h>只搜尋系統路徑註解:題目本意大概是這樣。(b)(b)#include "*.h"只搜尋使用者檔案
(c)#include "*.h"先搜尋使用者檔案,再去系統路徑搜尋
(d)兩者可能等價
帶"" 意思是表示先在當前程式所在的目錄查詢所包含的檔案,,如果沒有就查詢系統檔案。
帶<>是只直接呼叫系統檔案,
而不去查詢目錄所包含的檔案。
所以一般呼叫系統標頭檔案都是用<>這樣速度更快,使用者的標頭檔案就用""。
問題二:記憶體對齊
structsizeof(cs),這道題出題人給的選項居然沒有正確答案。應該是8,(2+1)+1+4=8。當時想著都要向4位元組靠齊,4+4+4=12。cs;
問題三:引用與指標的區別
從根本理解,引用是變數的別名;指標是指向變數的位址。詳細的話可以從下面三點考慮:
引用的規則:
(1)引用被建立的同時必須被初始化(指標則可以在任何時候被初始化)。
(2)不能有null引用,引用必須與合法的儲存單元關聯(指標則可以是null)。
(3)一旦引用被初始化,就不能改變引用的關係(指標則可以隨時改變所指的物件)。
問題四:運算子優先順序
a&b>>2:分不清&還是》優先順序高。優先順序記憶方法:
去掉乙個最高的,去掉乙個最低的;
剩下的是
一、二、三、賦值;
雙目運算子中,順序為算術、關係和邏輯,移位和邏輯位插入其中。
問題五:隱式型別轉換
已知:int a=2,b=4,c=3;下面與a+b+c(=9)值不相等的項為:bc
(a)(a+b)*c/2 (=9) (b)1/2*(a+b)*c (=0) (c)c/2*(a+b) (=6)
問題六:前自增後自增與左值、右值
在c++中,為什麼前自增操作生成左值,後自增操作生成右值?為什麼有這樣的區別?
前自增返回的就是
自增後的「自己」(引用),而後自增返回的是
自增前「自己的副本(臨時變數)」。
前自增操作先對物件本身操作,然後返回物件本身,一般返回引用,可以被賦值;
後自增操作一般用乙個臨時變數儲存物件,然後對物件操作,返回臨時變數,這個臨時變數一般來說是右值,不能修改。
以後慢慢彙總。。。。。。
C語言筆記 一些小細節
2.char ex 5 4 scanf s ex 無需取位址符 因為字元陣列本身是指標。3.12s中 表示向左對齊 預設向右對齊 12 表示佔12個位元組。4.定義乙個陣列,比如char ex n n應為恒量,如 define n 5 或const int n 5 5.不支援字元陣列的直接賦值,需要...
那些年,mfc開發中要注意的一些小細節
1 給你的視窗加上最下化按鈕,方法 設定視窗的minimize box屬性為true 2 若你的視窗不需要改變大小,方法 設定視窗的border屬性為dialog frame 3 若你的視窗為主視窗,考慮過濾掉回車和esc操作 方法 實現虛函式pretranslatemessage bool xdl...
C 一些小細節
一 class 類 與 inlcude 類.h 的區別 class 類的使用,只是宣告有這麼乙個類,但是沒辦法呼叫類裡面的函式 而 include則可以 例如 pragma once include cocos2d.h include class scenemanger using ns cc cl...