生產實習第三天

2021-08-20 21:57:33 字數 3701 閱讀 6234

姓名:趙楊 日期:2023年6月22日

今日學習任務:今天學習了陣列與指標以及函式預處理關鍵字等知識點,氣泡排序,變數的儲存型別。

今日任務完成情況:課後習題完成 150+行的**

今日開發中出現的問題彙總: 對於指標方面的知識還是比較模糊不清楚的

今日未解決問題:無。

今日開發收穫:鞏固了關於陣列與指標的知識點,並學習了關於關鍵字方面的知識點。

自我評價:感覺還可以。

總結:1.一維陣列,二維陣列如何定義,初始化?如何在程式中賦值?

定義:int a[5];  int a[3][3];  

初始化:int a[5]=  int a[3][3]=,,}     

賦值:a[0]=5;a[0][0]=10;

2.字元陣列如何定義,初始化,如何程式中賦值?

定義:char s[5]; 

初始化:char  s="12345"

賦值:strcpy(s, "good news!"); /*給陣列賦字串*/

3.字串常見函式的使用,不用函式如何實現字串的複製,字串長度的實現?

建立兩個同等大小的陣列,用for語句迴圈對應賦值複製。用for,if語句檢查每乙個陣列,知道檢測到\0,測出長度。

4.函式的構造有哪些?入參,返回值如何在函式中體現?形參,實參是如何傳遞資料?

函式型別     函式名(形式引數型別說明表)

int init(int x, int y)

值傳遞方式方式:

函式呼叫時

,為形參分配單元

,並將實參的值複製到形參中;呼叫

結束,形參單元被釋放,實參單元仍保留並維持原

值;特點

:形參與實參占用不同的記憶體

單元;  單向

傳遞5.值傳遞,位址傳遞是怎麼回事?如何實現在子函式中數值交換後在主函式中能實現?

位址傳遞方式:

函式呼叫時,將資料的儲存位址作為引數傳遞給

形參特點:u形參

與實參占用同樣的

儲存單元;

u「雙向」傳遞;

實參和形參必須是位址常量或

變數;6. auto,register,extern,static關鍵字的使用,詳細說明

1.   

自動變數(

autovariable

)函式中的區域性變數,如果不用static特別說明,則編譯系統預設為自動變數,它在函式呼叫中分配記憶體空間,資料儲存在動態儲存區,在函式呼叫結束後,自動釋放這些空間。

2.   

register

一般情況下,變數存放在記憶體中,當程式中用到哪個值時,將其從記憶體中取出送到cpu。對於頻繁使用的變數,如for迴圈操作,為了提高效率,可以請求編譯器將這個變數儲存在cpu的暫存器中,即暫存器變數,從而加快程式的執行。不過現在的編譯器,優化性較強,所以不必用register宣告變數。

3.    

static

(1) 

static

與變數static

與區域性變數

在函式中的區域性變數,加上關鍵字static,該變數就被定義成為乙個靜態區域性變數。識別符號如果被宣告為static,就具有靜態生命週期。它始終駐留在全域性資料區,直到程式執行結束。但其作用域為區域性作用域,當定義它的函式或語句塊結束時,其作用域隨之結束。因此,函式執行結束後,變數的儲存空間依然存在,不隨函式執行結束撤銷,但其他函式是不能使用它的,或者說其他函式「看不見」它。靜態區域性變數只在編譯時賦一次初值,如果對變數沒有賦初值,則在編譯的時候自動賦為0,而且在函式下次呼叫時,變數的值保持為上次使用結束的值。

static

與全域性變數

在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域性變數。這時,只能在此檔案中使用變數,別的檔案不能使用。

對於全域性變數,即使在定義前不加static,它也是按靜態方式儲存的,static只是影響變數的作用範圍,這時可以在別的檔案中使用變數。

(2) 

static

與函式對於函式前加static,表示此函式只能在此檔案中呼叫,別的檔案「看不見」它。這樣就可以在兩個檔案中,使用相同的函式名稱而互不影響。

(3) 

static

與類static

與類的資料成員

1)       對於類的資料成員,在前面加上static關鍵字,為靜態資料成員,表示這個資料成員不屬於某個物件,而是所有物件都可以訪問它。而且,即可以像普通資料成員那樣通過物件(.操作符)訪問,也可以用專有方式,通過類名(::操作符)訪問靜態資料成員。

2)       靜態資料成員在記憶體中只佔乙份儲存空間,因此,每個物件都可以改變它的值。它的儲存空間不隨建立的物件的撤銷而撤銷,而是在程式執行結束時撤銷。

3)       不能用引數列表對靜態資料成員初始化,如果未對其初始化,子編譯系統將其初始化為0。

4)       而非靜態資料成員,在產生每乙個物件的時候都會對應產生這個資料的乙個儲存空間。

static

與類的成員函式

1)       同靜態資料成員類似,靜態成員函式也是屬於類,不屬於物件,所以即可以通過物件(.操作符)訪問,也可以通過類名(::操作符)訪問靜態成員函式。

2)       由於靜態成員函式屬於類,不屬於特定的物件,而this指標是關於特定的物件的,所以靜態成員函式沒有this指標,靜態成員函式一般是用來訪問靜態資料成員,不訪問非靜態資料成員(可以訪問非靜態資料成員,但不提倡這樣做)。而非靜態的共有(public)成員函式既可以訪問靜態資料成員也可以訪問非靜態資料成員。

4.   

extern

extern只能用來宣告已定義的變數,不能用於變數的定義。

宣告包括定義,但不是所有的宣告都是定義。關於宣告和定義的簡單區分方法可以用:建立儲存空間的宣告稱為定義性宣告,把不建立儲存空間的宣告稱引用性宣告。

int a;        //定義性宣告,既是宣告,又是定義。為變數a開闢儲存空間

extern int a;  //只是宣告,不是定義,不為變數a開闢儲存空間

(1) 

在乙個檔案內使用

extern

變數的作用域,一般是從變數的定義處開始的,如果想在定義變數之前使用這個變數,可以

extern

來宣告外部變數來擴充套件它的作用域,即同乙個檔案內,extern宣告之後就可以作用域擴大到宣告處到檔案結束。用

extern

對此變數進行

宣告,這裡變數宣告表示這個變數是已經在別的地方定義的,宣告不會產生新的變數也不再給變數分配記憶體空間。

(2) 

在多個檔案內使用

extern

對於多個原始檔,如果想在乙個檔案中使用另乙個已定義的外部變數,可以在未定義該外部變數的檔案內做extern宣告即可以使用,編譯時遇到extern,會先在檔案內找是否定義了該外部變數。如果未找到則在鏈結時在其他檔案中找。如果在兩個檔案中定義了乙個同名變數,會出現重複定義的錯誤。但是需要注意在不同檔案中

extern

宣告變數,會相互影響,可能執行乙個檔案時改變了該全域性變數的值,影響其他檔案的呼叫。

如果我們希望該外部變數只能在本檔案內使用,而不能被其他檔案引用可以在外部變數定義時加

static

宣告。防止別人寫的模組誤用。也就是說,

乙個檔案中用了

static int a

;試圖在另乙個檔案中用

extern int a

來擴充套件a

的作用域是不行的,這個操作可以通過編譯,但不能執行。將

static

去掉,程式可執行。

實習第三天

sharedpreferences是android平台上乙個輕量級的儲存類,簡單的說就是可以儲存一些我們需要的變數資訊 例如 程式聲音開關 大小,設定自動登入記住賬號對賬號 密碼的儲存,對預設事項的紀錄等。1 intent bundle的傳送方式 2 利用sharedpreferences acti...

實習第三天

2014 07 23 實習第三天 上午 學習mvc框架的基礎知識,使用mvc4建立一些相關程式檔案,發現雖已經安裝了mvc4,但是在新增新項的時候不能新增實體資料模型。重新安裝微軟的web安裝平台來進行mvc4的重灌,結果還是不能新增實體資料模型,微軟的軟體有時候真的是莫名奇妙。接觸一些mvc相關的...

實習日記 第三天

今天是實習的第三天,昨天我們使用了ssm完成乙個簡單的登入介面,今天需要實現對資料庫中資料的顯示以及增刪改查操作。老師在一開始為我們仔細講解了配置檔案的相關細節,聽了老師的講解,本來我對配置檔案完全不理解,現在也對其基本構成有所了解了,本專案中配置檔案有如下六部分。1.配置資料庫相關引數proper...