原创 C語言進階:第29課:指針和數組分析(下)

數組名可以當做常量指針使用,那麼指針是否也可以當做數組名來使用呢?數組的訪問方式: 以下標的形式訪問數組中的元素; 以指針的形式訪問數組中的元素;指針以固定增量在數組中移動時,效率高於下標形式,指針增量爲1且硬件具有增量模型時,效率更高。

原创 C語言進階:21、宏定義與使用分析

#define是預處理器處理的單元實體之一;#define定義的宏可以出現在程序的任意位置;#define定義之後的代碼都可以使用這個宏。#defin

原创 C語言進階42:內存操作經典問題《二》——常見內存錯誤與malloc()和free()函數

常見內存錯誤: 結構體指針未初始化 *** 結構體成員指針未分配足夠的內存 內存分配成功但未初始化 *** 內存操作越界動態內存申請之後,應該立即檢查指針值是否爲NULL,防止使用NULL指針:int* p = (int*) malloc

原创 C語言進階45:函數參數的祕密《下》——調用約定和可變參數程序

函數參數的計算次序是依賴於編譯器實現的,那麼函數參數的入棧次序是如何確定的呢?strcpy(s, "willwilling");哪個參數先入棧呢?——s先入棧。調用約定: 參數會傳遞給被調用的函數 返回值會被返回給函數調用者調用約定描述參

原创 C語言進階:22、條件編譯使用分析

條件編譯:同一份代碼,產生不同的產品基本概念:條件編譯的行爲類似於C語言中的if...else...                條件編譯是預編譯指令命令,用於控制是否編譯某段代碼。#include <stdio.h> #define

原创 C語言進階:第36課、函數指針與回調函數

C語言中的函數有自己特定的類型函數的類型由返回值,參數類型和參數個數共同決定:int add(int, int)的類型爲int(int , int )C語言通過typedef爲函數類型重命名:typedef type name(param

原创 Qt中的多線程及其應用(1)

一、進程與線程的概念什麼是程序?程序是計算機存儲系統中的數據文件。分爲源代碼程序和可執行程序。源代碼程序一般爲文本文件,用來描述程序的行爲和功能,可執行程序一般爲二進制文件,可以直接加載並執行。源代碼程序經過編譯器編譯,就成爲可執行程序。

原创 .h 與 .hpp 文件

   hpp,其實質就是將.cpp的實現代碼混入.h頭文件當中,定義與實現都包含在同一文件,則該類的調用者只需要include該hpp文件即可,無需再 將cpp加入到project中進行編譯。而實現代碼將直接編譯到調用者的obj文件中,不

原创 C語言進階:第32課:數組指針和指針數組分析

下面的聲明合法嗎? int array[5]; int matrix[3][3]; int* pa = array; int* pm = matrix;array代表數組首元素的地址,那麼matrix代表什麼?array和&arra

原创 C語言進階:第34課:多維數組和多維指針(難點)

指向指針的指針指針的本質是變量指針會佔用一定的內存空間可以定義指針的指針來保存指針變量的地址值。int main() { int i=0; int* p = NULL; int** pp = NULL; pp = &p;

原创 C++ STL中的 iterator 和 const_iterator

我們在C++中使用STL的容器時,經常會用到迭代器。使用迭代器可以很方便的進行容器元素遍歷和修改等操作。 近日,在使用Visual Studio 2015編程的時候發現,set的迭代器直接就是const_iterator類型,而vecto

原创 C語言進階:第35課、數組參數和指針參數分析

爲什麼C語言中的數組參數會退化爲指針?退化的意義: C語言中只會以值拷貝的方式傳遞參數 當向函數傳遞數組時: ??將整個數組拷貝一份傳入函數(排除) 將數組名看做常量指針傳數組首元素地址C語言以高效作爲最初設計目標: 1.參數傳遞的時候如

原创 C語言進階:第37課:指針閱讀技巧分析

下面的標識符代表是什麼含義? int (*p)(int) int (*p1)(int*, int (*f)(int*)); int (*p2[5])(int*); int (*(*p3)[5])(int*); int* (

原创 lambda表達式

c11新特性中加入了lambda表達式,所以Qt 也支持需在.pro文件中加入CONFIG += c++11#include<iostream> using namespace std; int main() { int a = 1;

原创 靜態庫與動態庫

所謂靜態庫,就是在靜態編譯時由編譯器到指定目錄尋找並且進行鏈接,一旦鏈接完成,最終的可執行程序中就包含了該庫文件中的所有有用信息,包括代碼段、數據段等。所謂動態庫,就是在應用程序運行時,由操作系統根據應用程序的請求,動態到指定目錄下尋找並