C語言小兵成長記錄!

2021-08-07 20:43:45 字數 4130 閱讀 3981

2017.9.16

一、  第乙個c程式。常量及變數

main 入口主函式。exit終止程式

printf 格式化輸出。

轉義字元。/000,/x00

asc2碼 a為97,a為65,『\0』為0。最大為256,對應char的記憶體大小。

strlen,求字串長度

「%dn」,"abc"

sizeof,計算變數大小

sizeof(long),4-32,8-64

資料型別的作用?

1,表示變數的空間。

2,各型別開闢空間的方式不同。

常量分為 字面常量,const常量,define定義的識別符號常量,列舉常量。

變數 字母下劃線開頭,last_name或lastname

關鍵字需要注意typedef,volatile,stuct,union,enum.

i\o函式:

int getchar()等待輸入字元,獲取asc碼值。

scanf(),放入緩衝區,不看目標空間大小,scanf拿\0之前的字元,\0有時getchar拿。

printf(),連線作業系統,也有緩衝區,提高工作效率。

100-200間素數使用試除法,改進,num=101,num+=2,,,if ,i<=sqrt(num).

關鍵字register,資料在電腦種由下往上儲存順序為,網盤-硬碟-記憶體-緩衝區-暫存器。

const,const後是什麼形式,形式不能改變,除非改變指標或者改變指標裡的值,const int num=1,const int *num=1。

volatile,只要記憶體發生變化直接從記憶體中取值。在c++環境下,const int num直接被放入暫存器,此時volatile const int num為了保證記憶體可見性,將記憶體賦的新值給予num。

區域性變數、全域性變數

全域性變數:作用域從檔案開始到檔案結束,生命週期整個工程,加extern可以被其他原始檔引用。

區域性變數:生命週期為函式括號內,作用域為整個函式,。

static,修飾區域性變數時,static int a可以跑出函式外執行,不被銷毀,延遲生命週期,修飾全域性變數時,static int a不能被其他原始檔引用。 

printf返回字元的個數,當printf巢狀使用時,printf("%d",printf("%d",printf(%d,43))),輸出字元的個數,4321.

二、  分支語句結構介紹

if語句注意點

1.if

if全範圍,判斷2次

ifelse if

小範圍,判斷1次

2.else跟最近的if匹配。

3.sizeof(arr1)/sizeof(arr1[0])求陣列元素個數。

4.if(flag)判斷真假,非0為真,0為假。

5.int*ptr=null //初始化指標

if(ptr!=null)

寫出指標就要給初始化。

6.浮點數記憶體儲存,float共64位,小數字52位。

需要宣告精度,和0比較時進行精度判斷,

switch語句注意點

1.case為入口,break為分支。

2.switch()引數後應該為整形。

case'a'為asc碼值。

前段時間由於其他事影響導致未能及時更新,現在開始,繼續記錄!

三、  操作符及表示式

1.算術操作符

『/』計算求浮點數時要求兩個運算元最少有乙個浮點數。

『%』只能計算整數。

2.移位操作符

不改變原變數值。

右移分為算術右移,邏輯右移。

在做乘二或除二運算時,可以使用移位,好處:效率高!

3.位操作

按位與,按位或,按位異或

4.賦值操作符

可連續賦值:x=y=a;

復合賦值例如:+=符號;

5.單目操作符

例如: + - sizeof ~(按位取反) ++  *(解引用) 等等

sizeof:

short s=0;

int a=2;

printf("%d',sizeof(s=a+3));//2

printf("%d",s)//0

其中sizeof在編譯期間就求值了,而建立變數在執行期間才開闢空間,所以sizeof已經運算完,a+3算出的值無用。上式所以為2.

sizeof(arr)和&arr中,arr表示陣列,其他地方都表示陣列首元素的首位址.

*:int *p=&p;//上式的*和int一體,int*代表指標型別.

*p=20;//進行解引用.

6.關係操作符

>=《之類的操作符.

7.邏輯操作符

&&邏輯與,||邏輯或,判斷表示式的真假.

例如:a=0;b=2;c=3;d=4.

a++&&++b&&d++;

printf("%d%d%d%d",a,b,c,d)//1234

a++||++b||d++;

printf("%d%d%d%d",a,b,c,d)//1334

8.條件操作符(三目操作符)

exp1?exp2:exp3

b=a>5?3:-3;

9.逗號表示式

結構為最後乙個表示式。

10.1.下標操作符『』,2.函式呼叫操作符『()',3.結構體成員訪問操作符『.』結構體指標物件『箭頭』

3.使用結構體成員訪問操作符『.』

typedef struct stu

; stu

int main()

四、函式

1.巢狀函式

2.鏈式訪問

定義:把函式的返回值作為某個函式的引數。

#ifndef _add_h_

3.鏈結屬性

全域性識別符號都具有外部鏈結屬性。

一般鏈結錯誤為1.外部不存在2.打錯函式名。

static void test():改為內部鏈結屬性。

修飾區域性變數:改變儲存型別,改變生命週期。

棧空間         存放區域性變數和形參     出去就銷毀。

堆空間         動態記憶體開闢                 用完不銷,易導致記憶體洩漏。

靜態區         全域性變數                         生命週期不銷毀,直到程式結束。

五、陣列

1.資料型別分為內建型別和自定義型別。陣列為自定義型別。

2.字串節省記憶體,只存一次。

3.陣列越界導致無限迴圈。

int i,arr[10]

for(i=0;i<12;i++)

}

int arr[3][4] = ;

for (i = 0; i < sizeof(arr) / sizeof(arr[0][0]); i++)

上式兩個迴圈體等價,第乙個從一維角度分析採用下標法,第二個從二維角度分析,採用指標法。

5.二維陣列記憶體中儲存。int[4],二維陣列中arr指向陣列,陣列指標型別:int(*)[4]。

6.陣列運算。

linux基本操作

ls-              顯示當前目錄檔案

cd檔案\     進入該檔案

ls-l             首字母為d是目錄

首字元為_是檔案

pwd           路徑

cd..            返回上級目錄

cd.             當前目錄

mkdir        建立資料夾

touch檔案        建立檔案

gedit檔案         編輯該檔案

gcc檔案            編譯該檔案

vim檔案            編譯該檔案

./test.o              執行該檔案

rm檔案             刪除該檔案

gcc-e test.c-o test.i            預處理       在test.i處停下

gcc-s test.c-o test.s           編譯            

gcc-c test.c-o test.o          彙編

gcc-o  mytest  test.0          鏈結

TA成長記錄

喜歡畫畫,但是計算機專業出身,所以給自己指了一條路 ta 俗稱技術美術 臨近畢業了,上網找工作的時候發現,ta招聘都是工作經驗5年起 現在還是ta小白,沒有心得可以分享,我想,能記錄下自己的學習路程,對自己對後輩都是件不錯的事。也許5年後,有人問我 如何成為一名ta?我可以簡單粗暴的回答ta 請去瀏...

成長記錄 2020 3

找準一級指標的kpi,如 的一級指標kpi應是減脂,而不是減重,暫時無法測量體脂,可將其分為若干個小目標,例如每個月減重七斤,為達到每月減重七斤的kpi,有效的方法有運動和飲食,從而推出每次運動一小時 每週運動三次以上,飲食方面包括少油少脂等等可具體細化到每乙個細節。主要目地是增強自己的自信心,期間...

C語言記錄

1.定義乙個巨集 define swap x,y 交換x,y的值 include stdio.h define swap x,y int main 2.堆疊溢位的原因 1.函式呼叫太深 函式呼叫時會先入棧,也就是保護現場的產生的變數 棧溢位 2.動態申請的空間使用後沒有釋放 堆溢位 3.陣列訪問越界...