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.陣列訪問越界...