Time of Update: 2017-01-18
指向結構體類型變數的使用首先讓我們定義結構體:struct stu{char name[20];long number;float score[4];} ;再定義指向結構體類型變數的指標變數:struct stu *p1, *p2 ;定義指標變數p 1、p 2,分別指向結構體類型變數。引用形式為:指標變數→成員;[例7-2] 對指向結構體類型變數的正確使用。輸入一個結構體類型變數的成員,並輸出。複製代碼 代碼如下:#include <stdlib.h> /*使用m a l l o
Time of Update: 2017-01-18
在編寫代碼做測試時發現兩個大數相乘結果不正確的問題,測試代碼如下: #include "stdafx.h"#include<stdlib.h>#include<time.h>int _tmain(int argc, _TCHAR* argv[]){ time_t temp1=1345172428000000; time_t temp2=1345172428*1000000; &
Time of Update: 2017-01-18
編寫無錯代碼的最好方法是把防止錯誤放在第一位。 1、while語句後面的空語句問題? while語句是一個迴圈語句,有時候需要空語句有時不需要空語句。為了避免出現誤用用語句我們規定在while使用空語句的時候才用下列方式:while(*pchTo++ = *pchFrom)
Time of Update: 2017-01-18
拷貝建構函式是C++最基礎的概念之一,大家自認為對拷貝建構函式瞭解嗎?請大家先回答一下三個問題:1. 以下函數哪個是拷貝建構函式,為什麼?X::X(const X&); X::X(X); X::X(X&, int a=1); X::X(X&, int a=1, b=2); 2. 一個類中可以存在多於一個的拷貝建構函式嗎?3. 寫出以下程式段的輸出結果, 並說明為什麼?
Time of Update: 2017-01-18
C++的四種強制類型轉換,所以C++不是型別安全的。分別為:static_cast , dynamic_cast , const_cast ,
Time of Update: 2017-01-18
c++中提供了四種新的強制轉換分別是:const_cast、dynamic_cast、reinterpret_cast、static_cast.這四種轉換類型,每一種都適用於特定的目的:const_cast 一般用於強製取消對象的常量性。它是唯一能夠做到這一點的C++風格的強制轉型。dynamic_cast 主要用於執行"安全向下轉型",也就是說,要確定一個對象是否是一個繼承體系中的一個特定類型。它是唯一不能用舊風格文法執行強制轉型。reinterpret_cast
Time of Update: 2017-01-18
在C++開發過程由於這樣那樣的原因,可以會出現點擊菜單、右鍵菜單無響應的問題,或者點擊A菜單,但是響應的卻是B菜單。遇到上述問題時,你可以從下面幾個方面分析,一般都可以解決問題。下面從四個方面來解決問題:
Time of Update: 2017-01-18
這幾天工作時碰到一個C++的編譯錯誤(我使用的是Visual C++ 7.0),說是有一個類重複定義,仔細想想我們的這個項目也是做了好幾個Release了, 內部代碼應該不會有這樣的低級錯誤, 真把類型給重複定義了,檢查結果正如我預料的一樣。 就這樣, 我左右沒找到原因,被一個編譯錯誤給卡在那裡了。(在我的概念中, 程式錯誤的等級為:編譯錯誤->連結錯誤->邏輯錯誤, 此錯誤屬於最低級 )。這時我仔細看了一下錯誤提示,
Time of Update: 2017-01-18
C++由於標頭檔重複包含了所定義的變數或者常量,編譯器就會報重複定義的錯誤。如果你碰見這樣的問題可以考慮重下面幾個方面去解決: 1、在出現重定義錯誤的標頭檔加上:#ifndef FileName_H_#define FileName_H_ ....(標頭檔內容)#endif注意如果FileName_H_這個名字已經被使用,將會出現未定義問題(這裡不討論),這是你保證FileName_H_唯一就可以。2、在出現重定義錯誤的標頭檔加上這一句:#pragma once
Time of Update: 2017-01-18
一、什麼是位元組對齊電腦中記憶體空間都是按照byte劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但實際情況是在訪問特定類型變數的時候經常在特定的記憶體位址訪問,這就需要各種類型資料按照一定的規則在空間上排列,而不是順序的一個接一個的排放,這就是對齊。二、對齊的作用和原因:1、平台原因(移植原因):不是所有的硬體平台都能訪問任意地址上的任意資料的;某些硬體平台只能在某些地址處取某些特定類型的資料,否則拋出硬體異常。各個硬體平台對儲存空間的處理上有很大的不同。一些平台對某些特定類
Time of Update: 2017-01-18
在系統開發過程中出現的bug相對而言是比較好解決的,花費在這個上面的調試代價不是很大,但是在系統整合後的bug往往是難以定位的bug(最好方式是打樁,通過打樁可以初步鎖定出錯的位置,如:進入函數前列印日誌,離開時再次列印日誌)。而這些難以定位的bug基本分為2類:記憶體錯誤和並非問題。
Time of Update: 2017-01-18
C#開發Windows應用程式中經常需要去控制系統的音量,分兩種方式:1.使用Win Api控制2.使用C++ dll控制Win Api控制: 使用user32.dll和winmm.dll都可以控制系統音量,區別是Win系統的版本。winmm.dll Xp環境下可用,user32.dll Vista及以上版本。C++ dll控制: CoreAudioApi 是C++ 第三方封裝了音量控制,網上下載DLL後再項目中引用即可使用。CoreAudioApi Vista及以上版本支援。下面給出代碼1
Time of Update: 2017-01-18
C#判斷給定大數是否為質數,目標以快速度得到正確的計算結果。 在看到這道題的時候,第一反應這是一道考程式複雜度的題,其次再是演算法問題。我們先來看看質數的規則:Link:http://en.wikipedia.org/wiki/Prime_numberC#求質數代碼:複製代碼 代碼如下:public bool primeNumber(int n){
Time of Update: 2017-01-18
基本解釋 const是一個C語言的關鍵字,它限定一個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程式也有一些協助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中一個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題: const變數 & 常量為什麼我象下面的例子一樣用一個const變數來初始化數組,ANSI C的編譯器會報告一個錯誤呢?const int n = 5;int a[n];
Time of Update: 2017-01-18
C語言的位欄位是個比較有意思的特性。它的目的是在一個機器字中儲存多個對象(每個對象佔據若干bit),從而節省記憶體資源,同時又避免複雜的位元運算。在此不再討論位欄位的具體文法,下面將研究位欄位的儲存特性。 先說含有多個欄位(field)的字(word)所佔空間的規律——含有多個欄位的字的大小是所有欄位的類型中的最長的那個的倍數。但要確定究竟是最長類型的幾倍則比較複雜,這要看是否需要考慮類型對齊問題(即一個欄位能否跨越兩個最長類型)。 例1: struct word {char
Time of Update: 2017-01-18
當我在linux下寫c語言的時候經常會遇到段錯誤.所以就來細究一下. 段錯誤或段違規(segmentation violation)查看Expert C Programming(Peter Van Der Linden) Pg.156解釋到段錯誤是由於記憶體管理單元(MMU)的異常所致,而該異常則通常是由於解除引用一個未初始化或非法的指標引起.就是指標正在引用一個並不位於你的地址空間中的地址.書中的例子複製代碼 代碼如下:int *p = 0; *p = 17;
Time of Update: 2017-01-18
一個代碼:複製代碼 代碼如下:#include<stdio.h>#include<stdlib.h>#define uchar unsigned char#define uint unsigned intvoid display(uchar *p);char h[4] = {'A','B','C','\0'};char e[4] = {'E','F','L','\0'};char l[4] = {'M','N','O','\0'};char o[4] = {'X','Y'
Time of Update: 2017-01-18
大師級經典的著作,要字斟句酌的去讀,去理解。以前在看K&R的The C Programming
Time of Update: 2017-01-18
學過數學的人都知道,高斯消元法是解線性方程組是,演算法很簡單,但過程很複雜,這就是我在網上找不到免費的且正確的高斯消元法的原因了。所以我下決心自己編,結果I do it. 高斯消元法的用途很廣,它是解決數學問題最重要的方法之一,在《計算方法》這本書的第一章就講的是高斯消元法,很多問題最終歸結為解線性方法組。 因為我是個編程初學者,所以這個程式在高手看來可能會覺得funny.不過我不介意,還請你們多多指教。
Time of Update: 2017-01-18
一、在C&C++中 一、inline 關鍵字用來定義一個類的內嵌函式,引入它的主要原因是用它替代C中運算式形式的宏定義。 運算式形式的宏定義一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))為什麼要取代這種形式呢,且聽我道來: 1.