Time of Update: 2018-12-04
C面試時的讀程式題ZZ shury 發表於 2004-12-5 17:50:00 What will print out? main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%sn”,p2); } Answer:empty string.
Time of Update: 2018-12-04
建立win32 application選擇簡單的win 32程式。#include "stdafx.h"//回呼函數,由作業系統調用。 裡面的參數是作業系統注入的。 函數名可以任意起LRESULT CALLBACK Win01Proc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam){HDC hdc;PAINTSTRUCT ps;switch (uMsg){case WM_PAINT: //開始繪製hdc = BeginPaint(hwnd,
Time of Update: 2018-12-04
正如Effective C++所講:C++就是一個語言聯邦。他是一個多面手。對於同一個問題往往有很多種解決辦法,具體採用那種辦法就交給程式員去選擇。因此本文對C++檔案IO的整理就得分為兩個面:C方式,C++方式。程式員可根據自己所在團隊選擇合適且統一的IO方式。 一.
Time of Update: 2018-12-04
在物件導向技術下類中成員的可見度以及存取控制程度總是讓程式員發懵。特別是初學者。下面將對其做一總結。1.橫向來看,比較簡單。類中成員的存取控制程度有三種:public,private,proteced。public:完全向外部公開。protected:類中以及衍生類別均可訪問,不能再類外訪問。private:
Time of Update: 2018-12-04
map守C++的一個標準容器,它提供了很好的一對一的關係,在一些程式中建立一個map可以起到事半功倍的效果。Member functions(constructor)Construct map (public member function) //構造,形如 map<int,int >mm;(destructor)Map destructor (public member function) operator=Copy container content (
Time of Update: 2018-12-04
C++ 與Java時間限制: 2000ms 記憶體限制:
Time of Update: 2018-12-04
C# 用雜湊表搜尋對象作者:Bill Wagner 下載原始碼 .NET Framework中的大多數容器都是序列式容器(sequence
Time of Update: 2018-12-04
windows編程宏展開此前寫過一篇關於宏的文章:宏使用之預先處理操作符總結,在這裡詳細介紹了Windows整合式開發環境下(IDE)如何進行宏展開,linux編程宏展開使用gcc,g++編譯器編譯,使用編譯器的-P選項,假設有源檔案a.cpp,使用以下命令進行宏展開,你就可以在a.prescan檔案中看到效果了。$g++ -E -P a.cpp > a.prescan
Time of Update: 2018-12-04
一、“right-left”規則看過《C專家編程》中的分析規則,用起來並不是很舒服,遂在網上尋找,發現還有一個著名的“right-left”規則。規則經翻譯總結後如下:“right-left”規則:0. 規則中符號 * 讀作 “指向...的指標” [] 讀作 “...的數組” () 讀作 “返回...的函數”1. 起始點 找到聲明中的標識符(Identifier),它就是你分析的起始點,讀作:“$(Identifier)是...”;2. 右邊 看你的標識符右邊 a) 如果發現“(
Time of Update: 2018-12-04
本文檔的Copyleft歸rosetta所有,使用GPL發布,可以自由拷貝、轉載,轉載時請保持文檔的完整性。參考資料:《Linux核心完全剖析》,《新版組合語言程式設計》,《Linux C編程一站式學習》 最近要改個C語言演算法的關鍵區段用組合語言實現,Linux裡嵌入彙編基本使用AT&T彙編,比如Linux系統的啟動部分用的就是AT&T彙編 。以前學過AT&T彙編,但學過一段時間就忘了,但對Intel彙編基礎比較熟悉,兩者使用方法基本相似,所以對著Intel彙編,
Time of Update: 2018-12-04
1,隱藏作用,講一個全域變數定義為靜態地,則該全域變數只在該源檔案中可見,這樣可以在不同源檔案中定義同名的全域變數2,保持,在函數中定義的變數定義為靜態地,則每一次調用該變數,即可擷取上一次該變數的值3,初始化為04,在模組內定義的static全域變數可以被模組內所以函數訪問,但不能被模組外函數訪問5,在模組內定義的static函數只能被該模組的函數調用6,類中的static變數屬於整個類,所有的對象只能有一個拷貝7,在類中的static成員函數屬於整個類,這個函數不能接受this指標,所以只能
Time of Update: 2018-12-04
11、結構與聯合有和區別?(1). 結構和聯合都是由多個不同的資料類型成員組成, 但在任何同一時刻, 聯合中只存放了一個被選中的成員(所有成員共用一塊地址空間), 而結構的所有成員都存在(不同成員的存放地址不同)。 (2). 對於聯合的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對於結構的不同成員賦值是互不影響的。12、試寫出程式結果:int a=4;int &f(int x){ a=a+x; return a;}int main(void
Time of Update: 2018-12-04
如果使用的是VC6,將string檔案的_I.rdbuf()->snextc();這行代碼改成下面_I.rdbuf()->sbumpc();並設定/GX選項即可。 癥狀:c++的標準庫模板函數getline在讀到限定符後還要讀取額外字元...解決方案:else if(_Tr::eq((_E)_C, _D)) {_Chg = true; // _I.rdbuf()->snextc(); /* 把這一行注釋掉,添加下一行.*/_I.rdbuf()->sbumpc();
Time of Update: 2018-12-04
public修飾的成員變數 在程式的任何地方都可以被訪問,就是公開變數的意思,不需要通過成員函數就可以由類的執行個體直接存取private修飾的成員變數 只有類內可直接存取,私人的,類的執行個體要通過成員函數才可以訪問,這個可以起到資訊隱藏protected是受保護變數 類內和子類可直接存取,也就是說,基類中有protected成員,子類繼承於基類,那麼也可以訪問基類的protected成員,要是基類是private成員,則對於子類也是隱藏的,不可訪問
Time of Update: 2018-12-04
昨天參加愛立信筆試的時候遇到了這樣一個問題,就是解釋一下C++四種強制類型轉換的方法以及其應用場合,之前有看過這個知識點,但是,考試的時候怎麼想也就沒有寫的很全面,於是,這裡整理一下:C++中的四種強制類型轉換除了具有C語言強制類型轉換的功能外,還可提供更好的控制強制轉換的過程;能更清晰地表明程式員的意圖,程式員只有看到這樣的代碼,立即就能知道一個強制類型轉換的目的。 C風格的強制類型轉換(Type Cast)很簡單,不管什麼類型的轉換統統是: TYPE b = (TYPE)a,而C++風格的類
Time of Update: 2018-12-04
(1)第一個作用:隱藏。當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。所有未加static首碼的全域變數和函數都具有全域可見度,其它的源檔案也能訪問。如果加了static,就會對其它源檔案隱藏。利用這一特性可以在不同的檔案中定義同名函數和同名變數,而不必擔心命名衝突。Static可以用作函數和變數的首碼,對於函數來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。(2)static的第二個作用是保持變數內容的持久。儲存在待用資料區的
Time of Update: 2018-12-04
zz from: http://blog.csdn.net/TrueLie/archive/2006/08/09/1043195.aspxC語言測試是招聘嵌入式系統程式員過程中必須而且有效方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用資訊,此外,撇開面試的壓力不談,這種測試也是相當有趣的。從被面試者的角度來講,你能瞭解許多關於出題者或監考者的情況。這個測試只是出題者為顯示其對ANSI標準細節的知識而不是技術技巧而設計嗎?這個愚蠢的問題嗎?
Time of Update: 2018-12-04
若有 unsigned char *p1; unsigned long *p2; p1 = (unsigned char *)0x1000; p2 = (unsigned long *)0x2000;請問 p1+5=( ) p2+5=( ) #include <stdio.h>int main(){unsigned char *p1;unsigned long *p2;p1 =
Time of Update: 2018-12-04
1.在C++ 程式中調用被C 編譯器編譯後的函數,為什麼要加extern “C”?答:首先,extern是C/C++語言中表明函數和全域變數作用範圍的關鍵字,該關鍵字告訴編譯器,其聲明的函數和變數可以在本模組或其它模組中使用。通常,在模組的標頭檔中對本模組提供給其它模組引用的函數和全域變數以關鍵字extern聲明。extern "C"是串連申明(linkage declaration),被extern
Time of Update: 2018-12-04
有人視宏為洪水猛獸,甚至要求完全從C/C++中摒棄,有人則認為宏為至尊寶典,在邏輯代碼中都大量使用。個人認為這是個仁者見仁智者見智的問題,摒棄就沒必要了,看看宏在MFC和ATL中的一些經典應用,你會發現如果不使用宏來實現一些訊息映射和對象映射神馬的那將讓“苦逼”程式員多花費多少寶貴的時間。當然也不能濫用,尤其是盡量不要在邏輯代碼中使用,宏中的邏輯出問題後,調試時候的痛苦你就真的會發現原來程式員真的挺“苦逼”的。 其實很多人對宏的“恐懼”可能源於下面的一個簡單的宏的實現: #d