主頁 > 後端開發 > 一萬字一篇文20分鐘學會C語言和Python,十四年編程經驗老鳥傳授經驗之道

一萬字一篇文20分鐘學會C語言和Python,十四年編程經驗老鳥傳授經驗之道

2021-04-16 10:19:16 後端開發

前言

昨天在直播中有粉絲問我如何快速的對編程語言入門,我想這個問題是有必要讓大家知道的,相必也有很多新手對于如何快速完成編程語言的入門學習很感興趣,本篇文將會使用 C 語言以及 Python 為例,做出對比,讓大家對編程語言的共同基礎知識點得以了解,方便大家的學習,

在此我做了一張圖,紅色標注為 Python 與 C 語言之間的知識點細微差異(指使用上),藍色標注為較大差異,

從上圖中我們可以發現,Python 與 C 語言兩者差異并不明顯,80% 內容較為類似;我們接下來將會同時學習這些有共同點的知識點,不過由于篇幅以及本文重心為快速的完成編程語言知識點的學習,所以不再過多的進行深入講解,若想系統性且輕松的學習可以閱讀我對話模式的 Python 教程以及 C 語言教程,分別是《大話系列之C語言》與《大話系列之Python到游戲實戰》,同時也有C#教程正在更新《看聊天記錄都學不會C#?》,并且C++教程也在計劃中,

歡迎關注我喲~4/14日我還準備開播解答新手問題喲,有問題可以私聊我,我是一個熱心博主,

作者簡介

作者名:1_bit

簡介:CSDN博客專家,2020年博客之星TOP5,藍橋簽約作者,15-16年曾在網上直播,帶領一批程式小白走上程式員之路,歡迎各位小白加我咨詢我相關資訊,迷茫的你會找到答案,

博客地址:https://i1bit.blog.csdn.net


一 輸出

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧(2)我說編程很容易你們不服?跳轉
此小點系統學習點擊《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(1)裝載Python神器!亮劍!跳轉

在 Python 與 C 語言中,大多數基礎概念相同、用法極其類似,我們先以輸出作為例子,python 中使用 print 函式進行輸出,而 C 語言使用 printf 函式進行輸出,下面貼出兩者的使用方式:

C:

printf("HelloWorld");

Python:

print("HelloWorld")

我們從以上的使用方法中肯出,兩者極其類似,在編程語言中,或者說在 C 和 Python 中進行基礎編程所使用的 printf() 與 print() 其實都是 C 與 Python 所內置的函式,而函式我們可以理解為功能;print 與 printf 都是用于顯示,則我們可以理解成 print 與 printf 的功能都是用于顯示指定的字串,字串在 C 與 Python 之中都可以使用雙引號標記,例如“HelloWorld”、“123a31”、“123”、“@!!!!!¥!”等,只要使用了雙引號進行標識我們都可以看做是字串,包括“123”,

C 與 Python 之中的輸出顯示分別使用 printf 與 print,其實較為完整的寫法應該是在 printf 或 print 后添加一堆圓括號(在編程中所有有功能作用的標點都必須使用英文),printf 與 print 我們稱為函式名,我們使用這個函式就直接使用函式名加圓括號即可,圓括號中的內容我們可以稱為引數,引數可以理解為做飯時使用擁有做飯功能的電飯鍋所加入的米,因為有米才能做飯,在這里有需要顯示內容則有指定內容才能顯示,在使用 printf 與 print 時,我們在這兩個函式的圓括號中傳入了我們需要顯示的內容,在程式運行時將會顯示其內容,

兩者運行后都會在控制臺中顯示出 HelloWorld:

在此還要注意一點,在 C 語言中每一句代碼結束都需要使用分號進行說明,就像撰寫文章有標點符號一樣,我們需要標點表示一句話的結束;在 Python 中則是使用換行表示這一句代碼結束,

二 變數

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧(4)原來我早就會編程了跳轉
此小點系統學習點擊《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(2)在python中加號竟然如此善變跳轉

變數值在程式中用于存盤值的容器,例如在一個游戲中使用一個變數存盤了當前角色的血量,變數是可以創建多個的,用游戲作為舉例,我們可以創建一個變數存盤血量、一個變數存盤魔法值、一個變數存盤怒氣值等,C 語言中創建變數需要指定這個變數的存盤型別,例如如下代碼:

int a=0;

以上代碼表示創建一個變數 a,這個變數 a 是 int 型別的;int 是一個型別修飾符,表示這個變數用于存盤整型資料;等于號表示賦值,將等于號右邊的值(此處是0),存盤至左邊的變數 a 中,在此需要注意,a 是變數名稱,你可以隨意起名(起名也有規則,不過一般情況下不會觸發),我們可以創建多個變數,

在 Python 中創建一個變數不需要指定型別,也不需要添加分號,那么在這里你是否懂的如何在 Python 中創建一個變數了嗎?是的,你答對了,例如如下代碼:

a=0

以上則是 python 中創建一個名為 a 的變數,里面所存盤的數為 0,

變數在 C 語言中可以使用 printf進行輸出顯示其所存盤的內容,在 python 語言中可以使用 print 進行變數所存盤內容的輸出,

變數輸出

C語言使用 printf 進行變數的內容輸出對比 python 較為繁瑣,示例如下:

int a=0;
printf("%d",a);

以上代碼使用了 printf 輸出變數 a 中所存盤的內容,我們在之前說過,在 printf的圓括號中為指定要輸出的內容,在這里使用雙引號標識的是 %d,難道會輸出 %d 嗎?當然不是,在這里 %d 是一個占位符號,表示此處在輸出時將會替換成一個值,這個值在雙引號后使用逗號進行隔開的第一個值,在這里是變數 a;此時變數 a 表示的是里面所存盤的值 0,a 只是這個變數的一個名稱,最終將會輸出變數 a 所存盤的內容,

我們的變數可以創建多個,在此處我們可以輸出多個變數的值,代碼如下:

int a=0;
int b=10;
printf("%d %d ",a,b);

此時 printf 中出現了兩個 %d,到底這兩個 %d 該如何進行輸出呢?此時第一個 %d 對應的是雙引號后使用逗號所間隔的第一個變數 a 的值,第二個 %d 則會輸出雙引號后使用逗號間隔的第二個變數 b 的值,如果有多個將會以此類推,

那 python 是如何對變數進行顯示的呢?python 相對于 C 語言來說簡單多了,當然也是使用 print,直接使用 print在其圓括號中放入變數即可,示例如下:

a=10
b=0
print(a,b)

如果在 python 中只需要顯示一個變數值,那么就填寫一個變數就行,多個變數則使用逗號進行間隔,

C語言變數型別

在 C 語言中還有多種資料型別,在此以字符型別 char、浮點型別 float 為例:

int a=0;
char b='A';
float tt=3.33;
printf("%d %c %f ",a,b,tt);

以上代碼中,char 為字符型別變數的修飾符,此時變數 b 中存盤的是字符資料 A;在 C 語言中字符型別需要 使用單引號標識;之后使用了 float 創建了一個變數 tt,存盤的值是 3.33,我們可以理解 float 為小數,

在輸出陳述句中我們發現了幾個不同,出現了 %c 與 %f,其實 %d、%c、%f 我們都稱為占位符,%d 表示整數型別占位、%c 表示為字符char 型別占位、%f 表示為浮點進行占位;在此處進行輸出顯示時不同型別需要對應不同型別的占位符,

三 輸入

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧(4)原來我早就會編程了跳轉
此小點系統學習點擊《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(3)都說123是字符不是數字跳轉

輸入指從鍵盤上輸入值到計算機中,在此處我們可以理解成從鍵盤上輸入內容至程式之中接收,在 C 語言中使用 scanf 函式用于接收用戶從鍵盤上輸入的值,在 Python 中使用 input 接收用戶輸入的值,并且都可以將用戶輸入的值存盤至某一個變數之中,

在 C 語言中使用 scanf 示例如下:

int a=0;
scanf("%d",&a);

以上代碼使用了 scanf 接收用戶輸入的值,其中 %d 表示將會輸入一個整數,這個整數將會存到變數 a 之中,在scanf 中 &a 表示獲取變數 a 的地址,& 稱為取地址符號;其實這一句代碼也很好理解,也就是接收一個值,這個值將會放在變數 a 地址之中,就像送外賣,需要填寫地址外賣員才能夠將你所買的東西送到家,

在 python 中接收用戶所輸入的值依舊非常簡單,如下代碼:

b=0
b=input()

input 是 python 語言中接收用戶輸入的函式,直接將 input 函式賦值到一個變數即可;此時運行到這一句代碼時,input 函式發生作用,等待用戶輸入一個值確認后存盤至 b 變數之中,

四 判斷

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧(7)下一篇文章告訴你牛郎是誰跳轉
此小點系統學習點擊《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(4)小白不知道這個知識點將會錯漏百出跳轉

在 C 語言與 Python 語言中,判斷極為類似,最大的不同在于 C 語言使用花括號表示層級,而 Python 語言使用空格表示層級,

在 C 語言中 if 陳述句表示判斷一個條件是否成立,例如用戶輸入一個數,判斷這個數是否為指定的一個數:

int a=0;
scanf("%d",&a);
if(a==3){
	printf("用戶輸入的是 3 ");
}

以上代碼首先創建了一個變數 a 存盤的值是0,隨后使用 scanf 接收用戶輸入的值存盤至變數 a中,最后使用 if 陳述句判斷用戶輸入的值是否為3,

if 是關鍵字,我們可以理解關鍵字為有特殊功能的字符,在這里 if 就是表示接下來需要進行判斷了,在 if 關鍵字后的圓括號中,a==3 表示判斷 a 是否等于3.在 C 語言中,使用兩個等于號表示判斷等于號左右兩邊的值是否相等;此處,如果該條件成立,那么將會執行圓括號后的花括號內的代碼,也就是顯示 用戶輸入的是 3 ,如果條件錯誤,用戶輸入的值不是 3 將會什么都不顯示,

在 Python 語言中,同樣功能的代碼如下:

a=int(input())
if a==3:
    print("用戶輸入的是 3 ")

我們發現以上代碼在使用 input 函式時使用了 int() 將 input() 放在其中,這是因為在 python 中 input輸入的所有值都將為字串型別,之前說過“123” 也是字串,在 Python 中使用了雙引號進行標識的值都為字串型別,此時使用字串型別與數字 3 進行判斷肯定是不對的,所以在此使用 int() 將輸入的內容強制轉換為整數型別,

將輸入的內容轉為數字后,使用 if 進行判斷,但是我們可以看到,在 Python 中并沒有使用圓括號將條件 a==3 進行包含,這是因為在 Python 中條件都不需要使用圓括號進行包含,使用空格間隔即可;那如何在 Python 中表示條件正確后需要執行的代碼呢?此時我們可以使用冒號代替花括號,在條件后使用冒號,隨后換一行,在代碼陳述句前加上空格即可,這樣便代表了這個陳述句的層級是屬于 if 陳述句條件執行正確后需要執行的代碼,在此處若你想要執行多行代碼,只需要使用相同的空格間隔出陳述句即可,如下:

a=int(input())
if a==3:
    print("用戶輸入的是 3 ")
    print("用戶輸入的是 3 ")
    print("用戶輸入的是 3 ")

if else

在 C 語言與 Python 語言中,還支持當條件判斷錯誤后執行的固定陳述句,使用esle 關鍵字即可,

C語言例:

int a=0;
scanf("%d",&a);
if(a==3){
	printf("用戶輸入的是 3 ");
}else{
	printf("用戶輸入的不是 3");
} 

以上代碼當用戶輸入的值不是 3 時將會執行else 陳述句后花括號內的代碼,

Python 語言例:

a=int(input())
if a==3:
    print("用戶輸入的是 3 ")
else:
    print("用戶輸入的不是 3 ")

以上代碼與 C 語言類似,使用 else 表示條件錯誤后執行的代碼,在 Python 中使用冒號替代花括號,使用空格表示了層級,

if else if

若當我想判斷用戶輸入的數是 11 還是 3 還是 5時該如何做呢?不用擔心,C 語言與 Python 都有提供支持,例如如下代碼:

int a=0;
scanf("%d",&a);
if(a==3){
	printf("用戶輸入的是 3 ");
}else if(a==11){
	printf("用戶輸入的不是 11");
}else if(a==5){
	printf("用戶輸入的不是 5");
}else{
	printf("用戶輸入是其他數");
}

以上使用了 else if 判斷多個條件,若 a==3 條件不滿足則判斷 a 是否等于 11,若滿足則不執行之后的代碼,若a 不等于3、a不等于11并且 a不等于5則會執行 else 陳述句,以下截圖展示了這幾種情況:



那么 Python 也類似,只是將 else if 改成了 elif,其它撰寫方式同 Python 的 if 陳述句撰寫方式一致:

a=int(input())
if a==3:
    print("用戶輸入的是 3 ")
elif a==11:
    print("用戶輸入的是 11")
elif a==5:
    print("用戶輸入的是 5")
else:
    print("用戶輸入是其他數")

五 回圈

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧》(11)2分鐘領悟陣列跳轉

回圈用于重復執行一個代碼塊,回圈有一個關鍵字、一個條件、一個回圈的代碼塊,在 C 語言回圈中條件使用圓括號、代碼塊使用花括號包含;在 Python 中回圈條件不需要使用圓括號、使用冒號表示代碼塊的開始,

while 回圈

C 語言的 while 回圈:

int a=0;
while(a<10){
	printf("我在回圈...");
	a++;
}

以上代碼創建了一個變數 a 存盤值 0,while 是回圈的關鍵字,那么圓括號括起來的 a<10 則是這個回圈執行時所具備的條件,若 a 不小于 10 則不會再進行回圈,我們可以查看花括號中的內容,printf 顯示 我在回圈…,a++ 表示自增1,也就是a 這個變數執行到這個代碼將會從原有的值進行加 1計算,由于是在回圈中,所以每次回圈 a 變數都會加 1,那么總有一次是會大于 10,條件則不會成立,回圈不再執行,那么將會顯示 10 次 我在回圈…,結果如下:

在 Python 中我們根據其剛述說的規律,可以寫出以下代碼:

a=0
while a<10:
    print("我在回圈...")
    a+=1

以上代碼著重查看 a+=1,在 Python 中不允許使用 a++這種寫法,此處的 a+=1 與 a++ 最終結果一致,那么此時也就完成了 Python 語言的 while 回圈撰寫,

for 回圈

for 回圈在 C 語言與 Python 語言中有一些區別,不過大體一致,首先我們查看 C 語言的 for 回圈代碼:

int a;
for(a=0;a<10;a++){
	printf("我在回圈...");
}

以上代碼 for 為關鍵字,圓括號中不止條件;a=0為a 變數的定義,也就是可以在for 回圈的圓括號中定義參與回圈控制變數的值,然后分號結束后第二個內容則為條件,第三個內容為 a++表示每次回圈都會加 1;之后的花括號內的代碼則為回圈內容,

Python 語言的 for 回圈代碼如下:

for i in range(10):
    print("我在回圈")

以上代碼中 for 為關鍵字,i in range(10) 這一行代碼中 range將會生成一個 0-9 這幾個數字,i 是一個變數,這個變數將會自動的去找 range 生成的這幾個數字,每次回圈找一個,最終找到 range 生成的最后一個數字時回圈就結束了,

break 與 continue

break 與 continue 均是用于回圈控制,若我想回圈到第五次時就不再回圈可以使用 break,

C語言示例:

int a;
for(a=0;a<10;a++){
	if(a==5){
		break;
	} 
	printf("我在回圈...");
}

以上代碼在回圈的代碼塊中添加了一個 if 判斷,如果 a此時的值等于 5,則使用 break,此時將不會再進行回圈,結果如下:

Python 中此功能實作也是使用break,代碼如下:

for i in range(10):
    if i==5:
        break
    print("我在回圈")

以上代碼的變數 i 由于每次都會去找 range 生成的 10個數,這些數將會從 0 開始,第一次找到0那么 i 的值就會變成0、第二次找到1以此類推,到第五次時 i 的值將會變成 5,此時 i==5 條件成立跳出回圈,有些同學可能問為什么break跟其他的代碼空格不一樣?那是因為此時 break 又屬于 if 陳述句內的代碼了,所以當然要添加更多的空格表示所屬層級了,

我們可以將以上代碼的 break 改為 continue,可以看到回圈變成了 9次,那是因為 continue 表示忽略此次回圈,但是不跳出,只是當前此次回圈不再執行下去而已,

六 自定義函式

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧》(14)這么神奇?我寫了20行代碼竟然一行就可以搞定?跳轉

我們知道函式其實就是一種功能,那我們也可以撰寫一些功能,這些功能不是系統提供的,是我們自己撰寫的,所以稱為自定義函式,

在 C 語言中撰寫自定義函式示例如下;

#include<stdio.h>
int r1(){
	return 1;
}

int main(){
	int a;
	a=r1();
	printf("%d ",a);
}

以上代碼中,在 main 之上有一個使用 int 標識的代碼塊,這就是自定義函式,在此的 int 表示這個函式有一個值進行回傳,不明白這是什么意思?沒關系,我們繼續往下講,int 后面的 r1 為函式名,圓括號是固定寫法,在圓括號后的花括號內為這個自定義函式的代碼,其中 return 表示回傳的意思,1 則表示回傳的值,由于此函式只有一句代碼,那么他的功能就很清楚了,就是為了回傳一個數值 1,這個數值是整數型別,所以在函式名開頭需要使用 int 進行說明這個函式回傳內容的型別,

我們繼續看 main 里面的代碼,首先創建了一個變數 a并沒有賦值,然后賦值變數 a 為 r1 函式,為什么在這個地方要這樣寫呢?那是因為 r1 函式有一個回傳值,那就是 1;代碼運行到這一句時將會執行函式內的代碼,將會執行 return 1,此時這個函式就有了一個結果,這個結果將會賦值給變數 a,那么此時變數 a 中的內容就是為 1了,在自定義函式中運行寫多行代碼,可以寫上你的邏輯,或者是使用 printf 進行說明此次回傳的值是 1 都行,

結果如下:

如果這個函式需要回傳其它型別的值只需要在函式名前修改函式回傳值型別即可,

在函式中還可以添加引數,例如如下代碼:

#include<stdio.h>

int r1(int a,int b){
	return a+b;
}

int main(){
	int a;
	a=r1(11,2);
	printf("%d ",a);
}

以上代碼在原有基礎上在自定義函式的圓括號內添加了兩個引數,一個是a還有一個是b;a與b是整型變數,表示這個函式接收兩個整數型別的引數;那么此時在使用 r1 函式時應該在圓括號中傳入兩個引數并且使用逗號進行間隔,在以上代碼中傳入了11與2;我們再回到 r1 函式中,我們可以看到在函式體代碼中我們使用 return 回傳了a+b 的值,那結果應該為 13,最終運行結果,答案正確:

Python 中的自定義相比 C 語言簡單了不少,不需要說明函式回傳值型別,引數也不需要標識型別;我們實作同一個功能只需簡單的幾行代碼:

def r1(a,b):
    return a+b

a=r1(11,2)
print(a)

以上代碼中 def 標識創建一個自定義函式,r1為函式名,圓括號中的 a 和 b 為引數,return 這一句代碼依舊使用空格進行標記,其實我們發現 python 代碼更像是 C 語言的極簡版,

七 導庫

導庫在 C 語言中是頭檔案,在 Python 中是添加庫,在 C 語言中使用 #include<> 可以將所需的頭檔案添加至程式中方便使用,在 Python 中使用 import 匯入庫可以在接下來代碼中使用,在這里我們都可以理解 C 語言中的頭檔案與 Python 中的庫為一個工具箱,我們需要使用某些工具時就將其工具箱拿過來,因為這個工具存到了這個工具箱內,

C語言的#include 不再進行說明,因為基礎代碼中就有其存在,我們講解 Python 中的 import,在 Python 若想讓我們的程式休眠幾秒可以使用一個庫叫做 time,或者說是時間庫,我們需要停止時間所使用的停止工具就在這個工具箱中,代碼示例如下:

import time
def r1(a,b):
    return a+b

time.sleep(3)
a=r1(11,2)
print(a)

import time 表示將 time 這個工具箱拿過來,time.sleep 表示使用 time 這個工具箱中的 sleep 工具,sleep 作用為停止幾秒,在圓括號中輸入秒數即可,其中的小數點我們可以理解為“的”,某某工具箱中“的”某某工具,

陣列(串列)

此小點系統學習點擊《看聊天記錄都學不會C語言?太菜了吧》(11)2分鐘領悟陣列跳轉

我們現在學習的變數只能存盤一個內容,那么如何存盤多個內容呢?在 C 語言與 Python 中提供了類似的概念;在 C 語言有陣列可以存盤多個值,在 Python 中有串列方便我們存盤多個值,

C語言中的陣列:

int a[]={9,6,3,2,5,8,7,4,1,0};
printf("%d ",a[2]);

以上代碼 a[] 表示這是一個陣列,在陣列頭的 int 表示這是一個整數型別的陣列,在等于號右側則是存盤的值,存盤的值使用花括號括起來并且使用逗號進行間隔,在C 語言中陣列的元素指向是從 0 開始數的,若你想說陣列中存盤的值 9,那么你可以說是陣列的第 0 個元素,3則是陣列的第 2 個元素,結果如下:

Python 中的串列也類似:

a=[9,6,3,2,5,8,7,4,1,0]
print(a[2])

以上代碼中 a 表示一個串列,等于號右邊的方括號內為這個串列存盤的值,使用 print 輸出串列第 2 個元素也就是3,

結尾

由于時間此篇文章還有很多相同點和非相同點沒有介紹,我將在 4月14日 晚上7.30 直播間慢慢補坑,歡迎各位前來捧場,本篇文目的在于給新手一個概念,方便之后的學習,望各位學習一帆風順~

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

標籤:python

上一篇:精寫15篇,學會Python爬蟲 -- (4)專案一:獲取電影票房資料庫資料 丨蓄力計劃

下一篇:【藍橋杯2019】修改陣列

標籤雲
其他(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