一、學(xué)習(xí)目標(biāo)
1.面試
2.后期服務(wù)JNI(C語(yǔ)言)C JAVA 編程思想 編程能力
二、C語(yǔ)言和C++的區(qū)別
1.C是面向過(guò)程 C++是面向?qū)ο螅ㄒ浦?復(fù)用)
三、程序從寫出來(lái)到—>有結(jié)果的過(guò)程
1.開發(fā)工具IDE:DevC++ Android Studio
2.創(chuàng)建項(xiàng)目 寫代碼
3.運(yùn)行
4.結(jié)果
若不使用集成開發(fā)環(huán)境
1.寫代碼——文本編輯器
printf("hello world");
2.預(yù)編譯—>編譯器(制定規(guī)則)
gcc-E test.c -o test.i
展開
3.編譯—>高級(jí)語(yǔ)言轉(zhuǎn)化為 匯編代碼
gcc-S test.i -o test.s
a.檢查語(yǔ)法錯(cuò)誤
b.轉(zhuǎn)化為匯編代碼
4.匯編—>把匯編代碼轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)
gcc -C test.s -o test.o
a.轉(zhuǎn)化為目標(biāo)文件
b.二進(jìn)制數(shù)據(jù)出現(xiàn)
01010001111010
5,鏈接—>把所有的目標(biāo)文件鏈接為可執(zhí)行的程序
gcc -o test.o test
四、C語(yǔ)言基礎(chǔ)
(1)//單行注釋
(2)/* 多行注釋 */
(3)include 宏 導(dǎo)入頭文件
如果系統(tǒng)已經(jīng)提供某些功能的實(shí)現(xiàn)
只需要使用include將這些功能所在的頭文件導(dǎo)入進(jìn)來(lái)就可以了
1.<系統(tǒng)提供的類庫(kù)>
stdio.h stdlib.h math.h string.h
2."自己定義的頭文件"
calculate.h
include<stdio.h>
編譯器首先從系統(tǒng)的類庫(kù)里面去查找這個(gè)頭文件,
如果沒(méi)有,再到自己的系統(tǒng)中查找,否則報(bào)錯(cuò)
include"stdio.h"
編譯器首先從自己的系統(tǒng)里面去查找這個(gè)頭文件,
如果沒(méi)有,再到系統(tǒng)的類庫(kù)中查找,否則報(bào)錯(cuò)
五、一些基礎(chǔ)講解和分析
include<stdio.h>
1.介紹:
main()函數(shù)=代碼塊=完成特定功能
所有程序的入口點(diǎn)都是main函數(shù)
int返回值 記錄當(dāng)前程序的運(yùn)行狀態(tài)
0:正常結(jié)束 資源自由分配
非零:1 異常結(jié)束 沒(méi)收
int argc:參數(shù)個(gè)數(shù)(argument count)
char*argv[]:每個(gè)參數(shù)組成的字符串?dāng)?shù)組
2.實(shí)例:
int main(int argc,char*argv[]){
printf("%d",argc);
printf("%s",argv[0])
3.關(guān)于scanf和printf:
printf 輸出語(yǔ)句 終端 console口
scanf 輸入:終端輸入
4.兩種常用表達(dá)
\n 換行
\t 一個(gè)縮進(jìn)
5.關(guān)于變量:
變量 -記錄數(shù)據(jù)
基本數(shù)據(jù)類型—>只能存一個(gè)值
int 整型數(shù)據(jù)(%d,四個(gè)字節(jié))
long 長(zhǎng)整型(%ld,四個(gè)字節(jié))
float 單精度浮點(diǎn)數(shù)(%f,四個(gè)字節(jié))
double 雙精度浮點(diǎn)數(shù)(%f,八個(gè)字節(jié))
char 字符(%c,一個(gè)字節(jié))
string 字符串
short 短整型(兩個(gè)字節(jié))
bool 布爾型 是、成立true;不是、不成立false(一個(gè)字節(jié))
(占據(jù)的內(nèi)存空間不一樣)
6.測(cè)量變量的字節(jié)長(zhǎng)度:
例如:
printf("%d\n",sizeof(int));//4
printf("%d\n",sizeof(long));//4
printf("%d\n",sizeof(double));//8
7.一些聲明:
(1)中文占用兩個(gè)字符
(2)%02d代表:不足兩位的用0補(bǔ)齊
(3)中文占據(jù)2個(gè)字符
(4)關(guān)于字符char型的輸出
(%c:字符、%d:字符對(duì)應(yīng)的ASCII值)
char choose='c';
printf("%c\n",choose);
printf("%d\n",choose);
(5)“回車”其實(shí)也是字符 代表\n
(6)注意:不要在scanf里面隨便寫內(nèi)容 寫的內(nèi)容就是用戶輸入的格式
(7)一般的基本格式:
scanf("%d",&num);
printf("%d\n",num);
8.關(guān)于一些運(yùn)算符:+ - * / % && || ++ -- == = += -= !=
/:表示除法 或者 取整數(shù)部分
%:表示取余數(shù)部分
&&:"且" 兩個(gè)同時(shí)成立
||:"或" 只要一個(gè)成立就可以
++:自增 a++,++a
+=: a+=2等價(jià)于a=a+2
-=:a-=2等價(jià)于a=a-2
==:判斷左右是否相等
=:將右值賦予左邊
兩個(gè)特別的運(yùn)算符(表達(dá)式):
問(wèn)號(hào)表達(dá)式:x>y?'yes':'no':
例如:
char c;
if(3>1){c='yes';}
else{c='no';}
或者 c=3>1?'yes':'no'; (即問(wèn)號(hào)表達(dá)式,簡(jiǎn)潔,為三目運(yùn)算符)
逗號(hào)表達(dá)式:,,,
result=表達(dá)式1,表達(dá)式2,表達(dá)式3 最后一個(gè)逗號(hào)后面的值就是輸出值
int temp=20;
int t2=(temp--,temp--,temp--);
printf("%d",t2);
輸出值為17