主頁 > 後端開發 > 推薦收藏!C語言入門基礎知識大全

推薦收藏!C語言入門基礎知識大全

2020-09-16 11:15:07 後端開發

01
C語言程式的結構認識


用一個簡單的c程式例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小伙伴對c語言有個初步認識。

例1:計算兩個整數之和的c程式:
#include main() 
{
 int a,b,sum; 
a=20; /*定義變數a,b,sum為整型變數*/ 
b=15; /*把整數20賦值給整型變數a*/ 
sum=a+b; /*把整數15賦值給整型變數b*/ 
printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /*把兩個數之和賦值給整型變數sum*/ 
}


重點說明

1、任何一個c語言程式都必須包括以下格式:main() { }——這是c語言的基本結構,任何一個程式都必須包含這個結構。括號內可以不寫任何內容,那么該程式將不執行任何結果。

2、main()——在c語言中稱之為“主函式”,一個c程式有且僅有一個main函式,任何一個c程式總是從main函式開始執行,main函式后面的一對圓括號不能省略。

3、被大括號{ }括起來的內容稱為main函式的函式體,這部分內容就是計算機要執行的內容。

4、在{ }里面每一句話后面都有一個分號(;),在c語言中,我們把以一個分號結尾的一句話叫做一個c語言的陳述句,分號是陳述句結束的標志。

5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ——通過執行這條c語言系統提供給我們直接使用的螢屏輸出函式,用戶即可看到運行結果,本程式運行后,將在顯示幕上顯示如下結果:a=20,b=15,sum=35。

6、#include——注意:以#號開頭。不以分號結尾 這一行沒有分號,所以不是陳述句,在c語言中稱之為命令列,或者叫做“預編譯處理命令”。

7、程式中以 /*開頭并且以*/結尾的部分表示程式的注釋部分,注釋可以添加在程式的任何位置,為了提高程式的可讀性而添加,但計算機在執行主函式內容時完全忽略注釋部分,換而言之就是計算機當做注釋部分不存在于主函式中。



02
C程式的生成程序


C程式是先由源檔案經編譯生成目標檔案,然后經過連接生成可執行檔案。

源程式的擴展名為 .c ,目標程式的擴展名為 .obj , 可執行程式的擴展名為 .exe 。



03
識別符號


在撰寫程式時,必須為函式、變數等命名,這個名字稱為識別符號。C語言中識別符號的命名規則如下:

識別符號只能由字母、數字、下劃線組成;

識別符號的第一個字母必須是字母和下劃線;

識別符號區分大小寫字母,如If和if是兩個完全不同的識別符號。

合法識別符號如下:A6, b_3 , _mn 非法的識別符號如下:ab#12 , 8m , tr3:4 , yes no

識別符號不能與程式中具有特殊意義的關鍵字相同,不能與用戶編制的函式名、C語言庫函式相同,在程式中各種識別符號盡量不要重復,以便區分。選擇變數名和其他識別符號時,應注意做到 “見名知義”。


識別符號分為如下三類

1、關鍵字
關鍵字是具有特定含義的,專門用來說明c語言特定成分的一類識別符號,不能用作用戶的識別符號。

2、預定義識別符號
預定義識別符號在c語言中也有特定的含義,但可以用作用戶識別符號,預定義識別符號分為兩類:
1)、庫函式名字,比如printf,scanf,sin,isdigit等 
2)、編譯處理命令名,比如define,include

3、用戶識別符號
用戶根據需要自己定義的識別符號稱為用戶識別符號。無論如何自定義識別符號,都必須符合識別符號的三條命名規則。



04
 常量


在程式運行中,其值不能被改變的量稱為常量。常量有5種型別:整型常量、實型常量、字符常量、字串常量和符號常量。


4.1 數值轉換

數值的四種表現形式:

①:二進制:所有數字由0,1構成,逢二進一,二進制數中不會出現2。

②:八進制:以數字0(注意不是以字母O,o)開頭,所有數字由0~7構成,逢八進一,八進制數中不會出現8。例:0112,0123,077等

③:十進制:所有數字由0~9構成,逢十進一,十進制數中不會出現10。例:0,12,-15等

④:十六進制:以0x或者0X(數字0加字母x)開頭,所有數字由0~9,A~F(或者a~f)構成,逢十六進一(其中A、B、C、D、E、F分別代表10、11、12、13、14、15) 例:0x4A、0X14c7等

在計算機內部,數字均以二進制形式表示和存放,用戶輸入的普通十進制數字都要被計算機轉換成二進制才能在計算機內部存盤,同樣計算機的運算結果也為二進制,一般要將其轉換成十進制數再輸出給用戶閱讀,這種轉換通常由計算機自動實作。

1)將十進制轉換二進制、八進制和十六進制
除法:將十進制數除以2,記錄余數,得到的商繼續除以2,直到商為0,然后將各次相處所得的余數從后往前逆序排列,所得余數數字序列就是該十進制數對應的二進制數。八進制和十六進制轉換方法同上。
例:十進制數13轉換成二進制數的值為1101,轉換八進制為015,轉換成十六進制為D.

2)將二進制、八進制和十六進制轉換成十進制
乘積求和:將二進制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然后將這些值求和。

3)二進制與八進制、十六進制數之間的相互轉換
①:二進制轉八進制:從右往左每三位一組轉換成十進制數,將所得資料組合就是對應的八進制數(注意:高位不足三位補零)。例:(010 110 111)2=(267)8

②:二進制轉十六進制:從右往左每四位一組轉換成十進制數,將所得資料組合就是對應的十六進制數(注意:高位不足四位補零)。例:(0101 1011)2=(5B)16

③:八進制轉化二進制:每一位數字轉換為三位二進制數字 例:(13)8=(001 011)2= (注意:去掉前面的兩個00,因為0在高位沒有意義) ④:十六進制轉化二進制:每一位數字轉換為四位二進制數字 例:(E3)16=(1110 0011)2


4.2 數形常量

整型常量有3種形式:十進制整型常量、八進制整型常量和十六進制整型常量。
(注意:c語言中沒有直接表示二進制的整型常量,在c語言源程式中不會出現二進制。)

書寫方式如下:
十進制整型常量:123 , 0 ,-24 , 85L(長整型常量) 等 八進制整型常量:051 ,-026 ,0773 等 十六進制整型常量:0x55 , 0x1101 , 0x , 0x5AC0 , -0xFF。其中L為長整型。


4.3 實型常量

實型常量有兩種表示形式:小數形式和指數形式。

小數形式:5.4 0.074 -23.0 指數形式:5.4e0 4.3e-3 -3.3e4

1)小數部分為0的實型常量,可以寫為453.0 或453。

2)用小數表示時,小數點的兩邊必須有數,不能寫成“ .453“和“453.“,而應該寫成“0.453“和“453.0“。

3)用指數寫法時,e前必須有數字,e后面的指數必須為整數(注意:整數階碼可以是正數,負數,也可以是八進制數、十六進制數,但必須為整數)。


4.4 字符常量

字符常量的標志是一對單引號‘ ’,c語言中的字符常量有兩類:

1)由一對單引號括起來的一個字符,如‘a ’, ‘r’ ,‘#’。注意: ′a′ 和 ′A′ 是兩個不同的字符常量。

2)由一對單引號括起來,以反斜杠\開頭,后跟若干數字或者字母,比如‘\n’,其中“\“是轉義的意思,后面跟不同的字符表示不同的意思,這類字符常量叫轉義字符。


4.5 字串常量

C語言中,以雙引號括起來的,由若干個字符組成的序列即為字串常量。
例:“ni hao” “happy”等等。


4.6 符號常量

符號常量是由宏定義“#define“定義的常量,在C程式中可用識別符號代表一個常量。

例:計算圓的面積的c程式。

#include 
#define PI 3. main() 
{
float r,s; 
r=12.5; 
S=PI *r*r;
 printf(“s= %f ”,s);
 }

說明:
#define 是宏定義,此程式中所有出現PI的地方都代表3.,同時PI稱為符號常量。習慣上我們用大寫字母來表示符號常量,小寫字母表示變數,這樣比較容易區別。


05
變數


變數就是其值可以改變的量。變數要有變數名,在記憶體中占據一定的存盤單元,存盤單元里存放的是該變數的值。不同型別的變數其存盤單元的大小不同,變數在使用前必須定義。


5.1 整型變數

整型變數分為4種:基本型(int)、短整型(short int 或short)、長整型(long int 或 long)和無符號型(unsigned int ,unsigned short,unsigned long)。

不同的編譯系統對上述四種整型資料所占用的位數和數值范圍有不同的規定。

型別說明符
單詞signed來說明“有符號”(即有正負數之分),不寫signed也隱含說明為有符號,unsigned用來說明“無符號”(只表示正數)。


5.2 實型變數

C語言中,實型變數分為單精度型別( float )和雙精度型別( double )兩種。

如:float a , b ; double m ;

在vc中,float 型資料在記憶體中占4個位元組(32位),double型資料占8個位元組。單精度實數提供7位有效數字,雙精度實數提供15~16位有效數字。實型常量不分float型和double型,一個實型常量可以賦給一個float 型或double型變數,但變數根據其型別截取實型常量中相應的有效數字。

注意:實型變數只能存放實型值,不能用整型變數存放實型值,也不能用實型變數存放整型值。


5.3 字符變數

字符變數用來存放字符常量,定義形式:
char 變數名;

其中關鍵字char定義字符型資料型別,占用一個位元組的存盤單元。

例:char cr1,cr2; cr1= ‘A’ , cr2=‘B’ ;

將一個字符賦給一個字符變數時,并不是將該字符本身存盤到記憶體中,而是將該字符對應的ASCII碼存盤到記憶體單元中。

由于在記憶體中字符以ASCII碼存放,它的存盤形式和整數的存盤形式類似,所以C語言中字符型資料與整型資料之間可以通用,一個字符能用字符的形式輸出,也能用整數的形式輸出,字符資料也能進行算術運算,此時相當于對它們的ASCII碼進行運算。



06
型別的自動轉換和強制轉換


當同一運算式中各資料的型別不同時,編譯程式會自動把它們轉變成同一型別后再進行計算。轉換優先級為:char < int < float < double 即左邊級別“低“的型別向右邊轉換。

具體地說,若在運算式中優先級最高的資料是double型,則此運算式中的其他資料均被轉換成double型,且計算結果也是double型;若在運算式中優先級最高的資料是float型,則此運算式中的其他資料均被轉換成float型,且計算結果也是float型。

在做賦值運算時,若賦值號左右兩邊的型別不同,則賦值號右邊的型別向左邊的型別轉換;當右邊的型別高于左邊的型別時,則在轉換時對右邊的資料進行截取。

除自動轉換外,還有強制轉換,表示形式是:( 型別 )(運算式);

例:(int)(a+b)


討論:當a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少?



07
C運算子認識

C語言的運算子范圍很廣,可分為以下幾類:

1、算術運算子:用于各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)共七種。

2、賦值運算子:用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。<="" span="">

3、逗號運算子:用于把若干運算式組合成一個運算式(,)。

4、關系運算子:用于比較運算。包括大于(>)、小于(<)、等于(==)、 大于等于(="">=)、小于等于(<=)和不等于(!=)六種。<="" span="">

5、邏輯運算子:用于邏輯運算。包括與(&&)、或(||)、非(!)三種。

6、條件運算子:這是一個三目運算子,用于條件求值(?:)。

7、位操作運算子:參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

8、指標運算子:用于取內容(*)和取地址(&)二種運算。

9、求位元組數運算子:用于計算資料型別所占的位元組數(sizeof)。

10、特殊運算子:有括號(),下標[],成員(→,.)等幾種。

另外,按參與運算的物件個數,C語言運算子可分為:單目運算子 (如 !)、雙目運算子 (如+,- )和三目運算子 (如 ? :)。


08
算術運算子和算術運算式


8.1 基本的算數運算子

(1)+(加法運算子或正值運算子,如2+5)。

(2)-(減法運算子或負值運算子,如4-2)。

(3)*(乘法運算子,如3*8)。

(4)/(除法運算子,如11/5)。

/的運算分為兩種情況: 

  a、“除”的左右兩邊都為整數時,所得結果必然是整數(注意:僅取整數部分,不是四舍五入) 比如:5/2的值為2,不是2.5,1/2的值為0。 

b、“除”的左右兩邊至少有一個是實型資料(即小數)時,所得結果為實型資料。比如:5/2.0的值為2.5,7.0/2.0的值為3.5.


(5)%(模運算子或稱求余運算子,%兩側均應為整型資料,如9%7的值為2)。

需要說明的是:當運算物件為負數時,所得結果隨編譯器不同而不同,在vc中,結果的符號與被除數相同,比如:13%-2值為1,而-15%2值為-1。


8.2 算術運算式和運算子的優先級與結合性

算術運算式是用算術運算子和括號將運算量(也稱運算元)連接起來的、符合C語言語法規則的運算式。運算物件包括函式、常量和變數等。

在計算機語言中,算術運算式的求值規律與數學中的四則運算的規律類似,其運算規則和要求如下。

(1)在算術運算式中,可使用多層圓括號,但括號必須配對。運算時從內層圓括號開始,由內向外依次計算各運算式的值。

(2)在算術運算式中,對于不同優先級的運算子,可按運算子的優先級由高到低進行運算,若運算式中運算子的優先級相同,則按運算子的結合方向進行運算。

(3)如果一個運算子兩側的運算元型別不同,則先利用自動轉換或強制型別轉換,使兩者具有相同型別,然后進行運算。


8.3 自增自減運算子

作用:使變數的值增1或減1。

如:++i,--i (在使用i之前,先使i的值加1、減1)。i++,i-- (在使用i之后,使i的值加1、減1)。

(1)只有變數才能用自增運算子 (++)和自減運算子(--),而常量或運算式不能用,如10++或(x+y)++都是不合法的。

(2)++和--的結合方向是“自右向左“,如 -i++ ,i的左邊是負號運算子,右邊是自增運算子,負號運算和自增運算都是 “自右向左“結合的,相當于 -(i++)。

在回圈陳述句中常用到自增(減)運算子,在指標中也常用到該運算子,考生要弄清楚“i++”和“++i”及“i--”和“--i”的區別,特別弄清楚運算式的值和變數的值。


09
賦值運算子與賦值運算式


9.1 賦值運算子與賦值運算式

賦值符號 “=“就是賦值運算子,作用是將一個資料賦給一個變數或將一個變數的值賦給另一個變數,由賦值運算子組成的運算式稱為賦值運算式。一般形式為:變數名 = 運算式。

在程式中可以多次給一個變數賦值,每賦一次值,與它相應的存盤單元中的資料就被更新一次,記憶體中當前的資料就是最后一次所賦值的那個資料。

例:a=12; 此運算式讀作“將10的值賦值給變數a”。

a、如果賦值號兩邊的運算物件型別不一致,系統會自動進行型別轉換,轉換的規則:將賦值號右邊運算式的值的型別轉換成賦值號左邊變數的型別,

例:int y=3.5;在變數y中最終存盤的是整數3。

b、 可以將復制運算式的值再賦值給變數,形成連續賦值。
例如:x=y=25 是一個連續賦值運算式,x=y=25 等價于x=(y=25),所以運算式x=y=25 最終的值為25 。


9.2 復合的賦值運算子

在賦值運算子之前加上其他運算子可以構成復合賦值運算子。其中與算術運算有關的復合運算子是:+=,-=,*=,/=,%= 。

兩個符號之間不可以有空格,復合賦值運算子的優先級與賦值運算子的相同。運算式n+=1等價于n=n+1,作用是取變數n中的值增1再賦給變數n,其他復合的賦值運算子的運算規則依次類推。

如求表達a+=a-=a*a 的值,其中a的初值為12 。

步驟:
先進行“a-=a*a“運算,相當于a=a-a*a=12-144=-132 。(2)再進行“a+=-132“運算,相當于 a=a+(-132)==-264 。


9.3 逗號運算子和逗號運算式

在c語言中,逗號除了作為分隔符,還可以用作一種運算子----逗號運算子,用逗號運算子將幾個運算式連接起來,例如a=b+c,a=b*c等稱為逗號運算式。

一般形式為:
運算式1 ,運算式2 ,運算式3 , …,運算式n
例:x=2,y=3,z=4

逗號運算式具有從左至右的結合性,即先求解運算式1,然后依次求解運算式2,直到運算式n的值。運算式n的值就是整個逗號運算式的值。上述的逗號運算式的值就是運算式z=4的值4.需要注意的是,逗號運算子是所有運算子中級別最低的。

例:有如下程式段:
main() 
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c); 
printf("y=%d,x=%d",y,x);
 }
程式顯示結果為:y=6,x=6

討論:將y=(x=a+b),(b+c);改為y=((x=a+b),b+c) 的程式結果?


10
關系運算子和關系運算式


10.1 C語言中的邏輯值

C語言中的邏輯值只有兩個:真(true)和假(flase)。用非零代表真,用零代表假。因此,對于任意一個運算式,如果它的值為零,就代表一個假值,如果它的值為非零,就代表一個真值。只要值不是零,不管是正數,負數,整數,實數,都代表一個真值。例如-5的邏輯值為真。

10.2 逗號運算子和逗號運算式

“&&”和“||”的運算物件有兩個,故它們都是雙目運算子,而!的運算物件只有一個,因此它是單目運算子。邏輯運算舉例如下:

(1)a&&b: 當&&兩邊都為“真”時,運算式a&&b的值才是真。
值得注意的是:在數學中,關系式0

(2)a||b: 當||兩邊有一個為“真”時,運算式a||b的值就是真。

(3)!a: 表示取反,如果a為真,則!A為假,反之亦然。例如!-5的值就為0。

在C語言中,由&&或||組成的邏輯運算式,在某些特定情況下會產生“短路“現象。

(1)x && y && z ,只有當x為真(非0)時,才需要判別y的值;只有x和y都為真時,才需要去判別z的值;只要x為假就不必判別y和z,整個運算式的值為0。口訣:“一假必假”。
例:
(!5==1)&&(++i==0) (!5==1)運算式的值為0,所以計算機運行中就跳過(++i==0)此運算式,(!5==1)&&(++i==0)運算式的值為0。

(2)x||y||z ,只要x的值為真(非零),就不必判別y和z的值 ,整個運算式的值為1,只有x的值為假,才需要判別y的值,只有x和y的值同時為假才需要判別z的值,口訣:“一真必真”。


11
位運算

11.1 位運算子

在計算機中,資料都是以二進制數形式存放的,位運算就是指對存盤單元中二進制位的運算。C語言提供6種位運算子。

11.2 位運算

位運算子 & |~<< >> ∧ 按優先級從高到低排列的順序是:

位運算子中求反運算“~“優先級最高,而左移和右移相同,居于第二,接下來的順序是按位與 “&“、按位異或 “∧“和按位或 “|“。順序為~ << >> & ∧ | 。

例1:左移運算子“<<”是雙目運算子。其功能把“<< ”左邊的運算元的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。="" <="" span="">
例如:a<<4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00(十進制48)。

例2:右移運算子“>>”是雙目運算子。其功能是把“>> ”左邊的運算元的各二進位全部右移若干位,“>>”右邊的數指定移動的位數。
例如:設 a=15, a>>2 表示把右移為十進制3)。

應該說明的是,對于有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決于編譯系統的規定。

例3:設二進制數a是00 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。

決議:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。

uj5u.com熱心網友回復:

更多交流學習企鵝3524659088

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56526.html

標籤:C++ 語言

上一篇:DLL注入后沒法卸載

下一篇:boost regex 新手求助

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more