C语言基础(1)
1、標識符分為三類:關鍵字、預定義標識符、用戶標識符。關鍵字在C語言中有特殊作用,所以像int、print等都不可用作他用。預定義標識符是預先定義并具有特殊含義的標識符,不可以用作它用,比如include,define。用戶標識符是用戶自定義的標識符,它的命名規則和關鍵字相同,即由字母、數字、下劃線組成,但第一個字必須是字母或者下劃線。此外,C語言是大小寫敏感性的語言,If是可以當作用戶自定義的標識符,但一般不會有人這么干。同時,大小寫敏感的語言還有JAVA,C#,RUBY,XML,C++,大小寫不敏感的語言有Fortran,BASIC,SQL,Pascal。
2、實型數據的標準格式是:小數形式+整數形式。比如:2.332e-1就是一個合法的實型數據。代表2.332*10-1。e前e后必有數,e后必須是整數。
3、每個字符串都有一個結束字符。所以一個“1”字符占兩個字節?!?’的ASCII數值是48,‘a’的ASCII數值是97,‘A’的ASCII數值是65。字符是可以算術運算的,而且大小寫字符的轉換是利用32這個值。
4、所有的ASCII都可以用“\”加數字來表示,一般數字是八進制的,當然也有十六進制的。如“\x6d”是十六進制的,“\141”是八進制的。0一般是不寫的。
5、算術運算符總共有五種:+,-,*,/,%。算術運算要丟掉小數的情況有三種:int a=4.2; (int)a; 4/3;
6、賦值運算符:只有一個“=”號,a=3, a++是先用后加(此值為3),++a值為(4)。此外常量不可以賦值。
7、位運算提供六種運算:按位求反~,按位左移<<,按位右移>>,按位與&,按位|,按位異或^。按位異或是”相同取0,不同取1“。位運算的宗旨就是先把十進制的轉化為二進制的,然后把二進制的再轉化為十進制的。在位數不變的情況下,左移一位表示乘以2,右移一位表示除以2。
8、輸出函數中,對應的類型有整型(%d),長整型(%ld)、字符型(%c),八進制數無符號整型(%o),十六進制數無符號整型(%x),字符串型(%s),無符號整型(%u),單精度實型(%f),指數型(%e)。百分號和字母之間加數字可以表示輸出空格。
9、輸入輸出函數除了printf();和scanf();以外,還有他們的簡略版本,也在stdio.h類庫中,是putchar();和getchar();,他們代表輸出輸入一個字符。例如a=getchar();代表從控制臺輸入一個字符。
10、兩個數交換順序一般采用第三個參數來實現:t=x; x=y; y=t。
11、實現保留三位小數有一個技巧:float a=123.45678; float b=((int)(a*1000+0.5))/1000.0; 。
12、C語言中的非零表示邏輯真,零表示邏輯假。關系運算符有>,>=,<,<=,==,!=,前四種的優先級要大于后兩種。關系運算符表示真時為1,表示假為0。4<5為真,表示1。邏輯運算只是表示真與假(0或1),不能有其它值。優先級是!,&&,||,需要注意的是只要一個是真的,“或”就為真,只要一個是假的,“與”就為假。條件運算符是唯一的三目運算符,表達式1?表達式2:表達式3;。switch語句中只能用break,不可以用continue,而且switch后面只能是整型常量、字符型常量、枚舉型數據,case后面只能是常量,不可以是變量。
13、循環語句有三種:for(),while(),do-while();,切記do-while();后面的分號不可以丟掉。嵌套循環一般用來處理二維數組。
14、有關函數的幾個要點:函數構成是函數類型、函數名、參數類型和形參。函數默認是int類型,函數不能嵌套定義,先聲明后調用再定義。函數的return返回值在一個函數中只有一個。以#開頭的是預編譯行,不是c語句,不加分號,不占運行時間。實參向形參傳遞參數。另外注意,“傳值”和“傳址”的不同,前者的形參的變化不會改變實參的值,后者形參的改變會改變實參的值。函數的遞歸調用就是直接或間接地調用自己。掌握幾個特殊的函數:sqrt();是算數平方根函數,pow(a,b);是冪函數。
15、指針變量是用來存儲地址的,一般變量是用來存儲值的,地址便是指針。指針可以指向任何數據類型,但不論指向的數據類型占多少個字節,一個指針變量占用四個字節。還可以有指向指針變量的指針**p;。指針變量在使用前必須初始化,即把一個具體的地址賦給它,如果不指向任何數據類型就賦一個NULL。指針初始化一般有兩種:int a=3; *p=&a; 或者int a=3, *p; p=&a; 。(*p)++的值會變化,*p++的地址會變化。數組名是指數組的第一個元素的地址,不可以自加。函數名是函數的入口地址,字符串常量名是字符串的首字符地址。
16、數組初始化便是賦值(加大括號),初始化的數組元素默認值是0,未初始化的數組元素的默認值是一個隨機數。數組的第一位可以不寫,但其它維必須寫。如a[][3]={4,5,6}合法,但a[3][]={3,5,6}不合法。對于二維數組a[2][3],a[0]叫首行地址,*(a[0]+1)是首行向后跳一列,即a[0][1]。元素形式的轉化法則:脫衣服法則。如a[2]=*(a+2),a[2][2]=*(a+2)[2]=*(*(a+2)+2)。這個思想很重要。
17、字符串常量用雙引號括起來,系統自動在其尾部加一個空值‘\0’。C語言沒有字符串變量,所以只能用字符數組來存放字符串,一般為了存放最后一個零,字符數組要比字符串多一位。字符串賦值也是有兩種方式:char a[]=”Hello World!”; 或者char *p;p=”Hello World!”;字符串的輸入輸出可以有三種方式:scanf函數和printf函數,此時需要scanf(“%s”,str);。專門處理字符串的兩個函數gets();和puts();,gets();函數最后需要賦一個’\0’,puts();函數最后會換行。還可以逐個地輸入輸出字符串的每個字符。? 重點是,scanf函數接收到了空格輸入就結束,而gets并不會有這個問題。此外字符串長度要少于字符數組長度。幾個常用的字符串函數有:strcpy();拷貝函數,strlen();求長度函數,strcmp();字符串比較函數。使用他們的時候要在預定義的頭部加入“string.h”。C語言中只有字符串常量,沒有字符串變量,如果要比較兩個字符串常量的大小不能直接用關系運算,得使用字符串比較函數。
18、文件類型指針是一個指向結構體類型的指針,格式是FILE *指針變量名。文件有文本文件和二進制文件,文本文件是存儲ASCII字符,二進制文件是存儲二進制。例如100,文本文件存儲‘1’,‘0’,‘0’的ASCII(三個八位二進制),而二進制文件存儲100的二進制01100100。打開文件用: FILE *fp; fp=fopen(“c:\\Lab.c”,”rb”);。文件由數據流組成。
19、轉義字符:\t是水平制表,\n是回車換行,\b是退到前一列,\f是將當前位置移至下一頁開頭,\v是垂直制表,\r是移至行開頭。
轉載于:https://www.cnblogs.com/joeshine/p/4341661.html
總結
- 上一篇: 指尖时刻:百度移动营销生态体系
- 下一篇: Ionic - 先进的 HTML5 移动