Time of Update: 2018-12-04
1.當你看到有這樣的用法的時候的,你可以肯定這是錯誤的 malloc(sizeof(strlen(str))); 這是因為字串最後有結束標誌'/0',應該改為: malloc(sizeof(strlen(str)+1)); 2.switch分支語句的使用 switch(s){ case 0: printf("0"); case 1: printf("1"); default printf("default"); } 這個程式的輸出會是:"01default"; 之所以會這樣,
Time of Update: 2018-12-04
優先順序運算子名稱或含義使用形式結合方向說明1[]數組下標數組名[常量運算式]左到右()圓括弧(運算式)/函數名(形參表).成員選擇(對象)對象.成員名->成員選擇(指標)對象指標->成員名2-負號運算子-運算式右到左單目運算子(類型)強制類型轉換(資料類型)運算式++自增運算子++變數名/變數名++單目運算子--自減運算子--變數名/變數名--單目運算子*取值運算子*指標變數單目運算子&取地址運算子&變數名單目運算子!邏輯非運算子!運算式單目運算子~按位取反運算子~
Time of Update: 2018-12-04
時間類型定義: 標頭檔:time.h 定義為:time_t 某些系統定義為 typedef long time_t 擷取時間函數:time_t time(time_t * timer); time_t time_now; time(&time_now); 輸出時間函數:char *ctime(const time_t *time);
Time of Update: 2018-12-04
gdb的斷點是基於訊號(signal)實現的在某個地址增加一個斷點,實際上就是修改那個地址的代碼,把原來的代碼替換成INT
Time of Update: 2018-12-04
針數組和數組指標(C) 收藏 //注意指標數組和數組指標分別是如何指向二維數組的#include <stdio.h>main(){ static int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};/* 定義二維數組m並初始化*/ int (*p)[4];//數組指標 p是指標,指向一維數組,每個一維數組有4個int元素 int i,j; int *q[3];//指標數組 q是數組,數組元素是指標,3個int指標 p=m;
Time of Update: 2018-12-04
PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::++--Grouping operatorArray accessMember access from a pointerMember access from an objectScoping operatorPost-incrementPost-decrement(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;
Time of Update: 2018-12-04
Time of Update: 2018-12-04
#include <stdio.h> /*標準輸入輸出定義*/#include <stdlib.h> /*標準函數庫定義*/#include <unistd.h> /*Unix標準函數定義*/#include <sys/types.h> /**/#include <sys/stat.h> /**/#include <fcntl.h> /
Time of Update: 2018-12-04
文章目錄 為啥C++不需要複製函數而C#需要淺拷貝深拷貝C#中的複製建構函式
Time of Update: 2018-12-04
為啥用內嵌函式(inline functions) 在C++中函數調用需要建立棧環境,進行參數複製,保護調用現場,返回時進行傳回值複製,恢複調用現場.這些操作都需要額外開銷.那有啥好辦法避免頻繁的函數調用呢,
Time of Update: 2018-12-04
文章目錄 方法一方法二,調用API 快速鍵的作用大家都清楚,就是快捷嘛,操作起來方便.用電腦的人很少有沒用過Ctrl + C 和Ctrl + V的.
Time of Update: 2018-12-04
文章目錄 棧(stack)堆(heap)自由儲存區全域/靜態儲存區 常量儲存區代碼區 我們知道電腦最重要的資源就是CPU和記憶體了.CPU的話我們貌似不能直接去操作,都是作業系統去管.而記憶體的話分為核心區和使用者區.核心區是由作業系統管理,我們只能通過一些API去間接操作.而使用者區就可以讓應用程式去使用了.我們編程大部分時候就是在使用者記憶體區中折騰來折騰去. C++記憶體分區C++的記憶體一般分為棧(stack)
Time of Update: 2018-12-04
進位的故事 跟數字打交道時我們接觸的最多的是十進位了,我們從小學到大學的數學課基本上都用的十進位.但實際上還存在各種各樣的其他進位.比如時間就是60進位,中國古代用十六進位表示重量,十六兩是一斤,所以有成語半斤八兩.
Time of Update: 2018-12-04
C++編碼規範(1):代碼注釋C++編碼規範(2):命名規範 如果你代碼中的變數名,函數數,類名都取得很好,不僅是個有意義的詞或短語,而且確切的表達了該變數或函數的功能.那讀起代碼來就像看文章一樣,絕對是一種享受.當然理想是美好的,現實可是殘酷的.很少有人能做到這樣.一來嘛你英語詞彙量得多,不樣不容易找到那麼多合適並貼切的詞.二來就是有些片語合就會很長,這樣不得不用些縮寫,而縮寫就不是每個人都認識,對一些人來說和無意義的字母沒啥區別,只要你英語好才能一眼瞧出來.
Time of Update: 2018-12-04
文章目錄 上面是講的概念性的東西,現在來講下文法細節C++抽象類別 物件導向的小故事
Time of Update: 2018-12-04
如果要儲存運行程式過程的資料要麼儲存到資料庫中,要麼建立一個普通的檔案,然後把資料儲存進去.但是這兩者有個缺點就是,不能把原有資料的結構也儲存進去.比如一個類中的欄位值儲存進去後再讀取出來必須再解析下才行.序列化技術讓你省去瞭解析的過程.儲存後再讀取時直接得到一個class序列化的方式有三種:BinaryFormatter,SoapFormatter,XmlSerializer1.BinaryFormatter儲存成位元據流.用法樣本:using System.IO;using
Time of Update: 2018-12-04
從使用者的角度來說,當程式出現異常時只要有給點簡單的提示就行.但從開發人員的角度來說就需要非常詳細的資訊,這對追蹤Bug很有用.異常相關的詳細資料可以記錄到記錄檔中.這樣你自己測試時比較方便點,而且做使用者支援時也方便,如果使用者碰到啥問題要他們把錯誤記錄檔發過來就行.異常處理語句通常的形式一般如下:try{ //some code}catch(Exception
Time of Update: 2018-12-04
using System;using System.Data;using System.Configuration;using System.Collections;using System.ComponentModel;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using
Time of Update: 2018-12-04
複製:private void button1_Click(object sender, System.EventArgs e) { // Takes the selected text from a text box and puts it on the clipboard. if(textBox1.SelectedText != ”") Clipboard.SetDataObject(textBox1.SelectedText); }粘貼:private void button2_C
Time of Update: 2018-12-04
有些成員變數的資料類型比較特別,它們的初始化方式也和普通資料類型的成員變數有所不同。這些特殊的類型的成員變數包括:a.引用b.常量c.靜態d.靜態常量(整型)e.靜態常量(非整型) 常量和引用,必須通過參數列表進行初始化。 靜態成員變數的初始化也頗有點特別,是在類外初始化且不能再帶有static關鍵字,其本質見文末。參考下面的代碼以及其中注釋:#include <iostream>using namespace std;class