嵌入式C语言基础(一)
生活随笔
收集整理的這篇文章主要介紹了
嵌入式C语言基础(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
嵌入式C語言基礎(chǔ):
system函數(shù):功能是運(yùn)行windows命令
#include <stdio.h> #include <stdlib.h> int main() {//main是程序的入口,操作系統(tǒng)運(yùn)行程序先找mainsystem("ipconfig");//在windows下ipconfig查看本地的網(wǎng)絡(luò)狀態(tài)system("pause");//pause是程序運(yùn)行后不直接退出return 0;//一般函數(shù)調(diào)用返回給操作系統(tǒng),如果正常返回都是0,若出錯(cuò)返回負(fù)數(shù)。 } //system("color 3");可設(shè)置輸出信息的顏色數(shù)字可變。以上代碼運(yùn)行結(jié)果如圖:
同樣也可以用system啟動(dòng)QQ:
代碼如下:
#include <stdio.h> #include <stdlib.h> int main() {system("start C:\\\"Program Files (x86)\"\\Tencent\\QQ\\Bin\\QQ.exe");system("pause");//若將這段代碼注釋掉,則運(yùn)行完QQ后不會(huì)停留在按任意鍵繼續(xù)那個(gè)界面。return 0; } //若直接將命令拷貝到system函數(shù)中 //會(huì)因字符串中有字符串而報(bào)錯(cuò),所以要將字符串轉(zhuǎn)義,反斜杠也要轉(zhuǎn)義。轉(zhuǎn)義字符有下表:
變量:
數(shù)據(jù)是存放在內(nèi)存中的,都是以010…這些二進(jìn)制的數(shù)字在內(nèi)存中存放的。定義變量格式:數(shù)據(jù)類型 變量名 ,若將變量輸出要有占位符如%d,%f,%lf等
數(shù)據(jù)類型都有:
函數(shù):
getchar()函數(shù)用來吸收字符(回車也是字符)
數(shù)組:
#include <stdio.h> #include <stdlib.h> int main() {//數(shù)組地址是連續(xù)的 //數(shù)組通過下標(biāo)來引用數(shù)組中的元素,從0開始//數(shù)組的中括號[],只有在定義一個(gè)數(shù)組的時(shí)候,才表示數(shù)組的大小,其余任何情況都表示用下標(biāo)來訪問數(shù)組。int arry1[100];//初始化數(shù)組,僅僅申請了100個(gè)整型數(shù)的內(nèi)存空間int arry2[3]={1,2,3};//有初始化的數(shù)組,完整初始化,該數(shù)組申請了三個(gè)整形數(shù)的內(nèi)存空間,并賦值三個(gè)數(shù)1,2,3int arry3[100]={1,2,3};//有初始化的數(shù)組,不完整初始化,該數(shù)組申請了100個(gè)整形數(shù)內(nèi)存空間,并賦值三個(gè)數(shù)1,2,3放在數(shù)組的前三位。int n;scanf("%d",n);int arry4[n];//實(shí)際應(yīng)用中無報(bào)錯(cuò)可使用,但是一些教材中認(rèn)定為非法。system("pause");return 0; }數(shù)組和函數(shù):
#include <stdio.h> #include <stdlib.h> void arrayPrint(int data[3]) {int i;for(i=0;i<3;i++){printf("%d ",data[i]);}putchar('\n');//輸出完畢后換行,putchar()是輸出一個(gè)字符,getchar()是用來獲取一個(gè)字符 } int main() {int array[3]={1,2,3};//數(shù)組和函數(shù)結(jié)合,數(shù)組名當(dāng)做實(shí)際參數(shù)arrayPrint(array);//問:如何計(jì)算數(shù)組中元素的個(gè)數(shù), 數(shù)組的總大小/一個(gè)類型的大小int a[3]; //一個(gè)整型占用空間4個(gè)字節(jié),3個(gè)占用空間12個(gè)字節(jié)char b[3]; //一個(gè)char型占用空間1個(gè)字節(jié),三個(gè)占用空間3個(gè)字節(jié)//相同點(diǎn):數(shù)組中元素的個(gè)數(shù)相同//不同點(diǎn):叔祖類型不同,數(shù)組的內(nèi)存大小不同printf("a數(shù)組的大小是:%d\n",sizeof(a));//sizeof是關(guān)鍵字并不是函數(shù)printf("b數(shù)組的大小是:%d\n",sizeof(b));printf("一個(gè)整數(shù)的空間是:%d\n",sizeof(int));printf("一個(gè)字符型的空間是:%d\n",sizeof(char));printf("a數(shù)組有%d個(gè)元素\n",sizeof(a)/sizeof(a[0]));//或者寫為sizeof(a)/sizeof(int)printf("b數(shù)組有%d個(gè)元素\n",sizeof(b)/sizeof(b[0])); //可以將sizeof()封裝成函數(shù),sizeof(a)/sizeof(a[0]),不管數(shù)組是什么類型,都可以這樣計(jì)算 system("pause");return 0; }注意:形式參數(shù)中,雖然寫的是一個(gè)數(shù)組的樣子,中括號中數(shù)組的大小是無效的!!!!!
#include <stdio.h> #include <stdlib.h> void arrayPrint(int datas[],int cnt) //數(shù)組做函數(shù)的參數(shù)會(huì)退化為指針 //形式參數(shù)中,雖然寫的是一個(gè)數(shù)組的樣子,中括號中數(shù)組的大小是無效的!!!!! //這里不管中括號寫多少,都不能代表形參數(shù)組有多大,僅僅告訴編譯器這個(gè)datas和普通的整型不一樣是一個(gè)數(shù)組,所以數(shù)字可寫可不寫 //這里的中括號的作用僅僅用來表示該參數(shù)是一個(gè)地址!在windows啊哈c中,用4個(gè)字節(jié)表示地址,linux64位中用8個(gè)字節(jié)表示。 {printf("數(shù)組的大小是:%d\n",sizeof(datas));printf("一個(gè)int數(shù)據(jù)大小是:%d\n",sizeof(int));printf("函數(shù)調(diào)用中:array數(shù)組元素個(gè)數(shù)為%d\n",sizeof(datas)/sizeof(datas[0]));int i;for(i=0;i<cnt;i++){printf("%d ",datas[i]);}putchar('\n');//輸出完畢后換行,putchar()是輸出一個(gè)字符,getchar()是用來獲取一個(gè)字符 }int main() {int array[4]={1,2,3};printf("數(shù)組的大小是:%d\n",sizeof(array));printf("main中:array數(shù)組元素個(gè)數(shù)為%d\n",sizeof(array)/sizeof(array[0]));//arrayPrint(array,sizeof(array)/sizeof(array[0]));//要想輸出數(shù)組可以設(shè)置兩個(gè)參數(shù)arrayPrint(&array[0],sizeof(array)/sizeof(array[0]));//數(shù)組名表示數(shù)組第一個(gè)元素的地址,所以也可以用的一個(gè)元素的地址作為參數(shù)system("pause");return 0; }C語言定義宏計(jì)算數(shù)組個(gè)數(shù):
#include <stdio.h> #define NTBL (sizeof(table)/sizeof(table[0])) int main() {int table[]={1,2,3,4,5,6,7};printf("%d \n",NTBL);system("pause");return 0; } /*第二種方式*/ #include <stdio.h> #define NTBL(arr,len){len=sizeof(arr)/sizeof(arr[0]);} int main() {int longth,array[]={1,2,3,4,5,6,7};//printf("%d \n",NTBL);NTBL(array,longth);printf("%d \n",longth);system("pause");return 0; }練習(xí):
#include <stdio.h> #include <stdlib.h> void initScores(int datas[],int size) {int i;for(i=0;i<size;i++){printf("請輸入第%d個(gè)學(xué)生的分?jǐn)?shù)\n",i+1);scanf("%d",&datas[i]);if(datas[i]<0 || datas[i]>100){printf("輸入錯(cuò)誤,強(qiáng)制退出\n");system("pause");exit(-1);}} } void arrayPrint(int datas[],int size) {int i;for(i=0;i<size;i++){printf("第%d個(gè)學(xué)生的成績是%d\n",i+1,datas[i]);} } int findMax(int datas[],int size) {int i;int max=0;for(i=0;i<size;i++){if(datas[i]>max){max=datas[i]; }}return max; } int findMin(int datas[],int size) {int i;int min=datas[0];for(i=0;i<size;i++){if(datas[i]<=min){min=datas[i]; }}return min; } float findAverge(int datas[],int size) {int i;int sum=0;float ave;for(i=0;i<size;i++){sum=datas[i]+sum;}ave=(float)sum/size;return ave; } void printRet(int data1,int data2,float data3) {printf("最高分是:%d,最低分是:%d,平均分是:%f\n",data1,data2,data3); } int main() {int scores[3];int len;int max;int min;float averge;len=sizeof(scores)/sizeof(scores[0]);//1、初始化數(shù)組initScores(scores,len);//1.1打印數(shù)組arrayPrint(scores,len);//2、找到最高分max=findMax(scores,len);//3、找到最低分min=findMin(scores,len);//4、算出平均分averge=findAverge(scores,len);//5、輸出結(jié)果printRet(max,min,averge);system("pause");return 0; }指針的概述:
#include <stdio.h> #include <stdlib.h> //通過變量名直接訪問變量 //變量訪問有兩種方式:①變量名②地址(指針) //指針=地址 int main() {int a=10;printf("通過變量名輸出:a=%d\n",a);printf("a的地址是:%p\n",&a);printf("通過地址輸出:a=%d\n",*(&a));//*是將地址中的內(nèi)容取出來,&a是地址system("pause");return 0; }指針變量:
#include <stdio.h> #include <stdlib.h> //*只有在定義一個(gè)指針變量的時(shí)候才是標(biāo)識符 //其他情況是運(yùn)算符,該運(yùn)算符的作用是取出內(nèi)存地址中數(shù)據(jù)的值 int main() {int a=10;int b=20;int* p1;//指針變量,存放的是地址p1=&a;//給指針變量賦值int* p2=&b;//定義并初始化一個(gè)指針變量printf("通過變量名a=%d\n",a);printf("通過指針變量a=%d\n",*p1);printf("通過指針變量b=%d\n",*p2);system("pause");return 0; }總結(jié)
以上是生活随笔為你收集整理的嵌入式C语言基础(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java学习(89):Charactor
- 下一篇: 好用的驱动加载工具