標籤:main 換行 內容 記憶體位址 keyword lan 預留位置 tor 接收
著作權聲明:本文出自阿鐘的部落格,轉載請註明出處:http://blog.csdn.net/a_zhon/。
目錄(?)[+]
在學習C語言資料類型之前,我們先來回顧一下Java中的基礎資料型別 (Elementary Data Type)和其特點一:基礎資料型別 (Elementary Data Type)1.在Java中有八大基礎資料型別 (Elementary Data Type)和一個引用資料(String)類型如下:
byte 1位元組 char 2位元組 short 2位元組 int 4位元組 float 4位元組 long 8位元組 double 8位元組 boolean
2.那在C語言中又有哪些類型呢?我們可以來看一下
int 4位元組char 1位元組float 4位元組double 8位元組long 4位元組short 2位元組signed 4位元組unsigned 4位元組void 1位元組
3.C語言為我們提供了一個函數可以直接用來計算類型的長度,這樣想知道一個類型的長度就非常方便了
//計算類型的長度:sizeof(類型)返回一個長度為int型main() { //計算類型所佔的長度 printf("int類型所佔的位元組:%d\n",sizeof(int)); printf("char類型所佔的位元組:%d\n",sizeof(char)); printf("float類型所佔的位元組:%d\n",sizeof(float)); printf("double類型所佔的位元組:%d\n",sizeof(double)); printf("long類型所佔的位元組:%d\n",sizeof(long)); printf("short類型所佔的位元組:%d\n",sizeof(short)); printf("signed類型所佔的位元組:%d\n",sizeof(signed)); printf("unsigned類型所佔的位元組:%d\n",sizeof(unsigned)); printf("void類型所佔的位元組:%d\n",sizeof(void));}
4.細心的你可能會發現怎麼少了個boolean類型呢?那該要怎麼做判斷呢!原來C語言使用的是非零和0來表示true和false。
//C語言中boolean類型,0表示為false,非零表示true if(0) { printf("false\n"); } else { printf("true\n"); }
5.Java基礎資料型別 (Elementary Data Type)和C語言的一些區別:
- java中char類型的長度為2個位元組,C語言中的長度為1個位元組
- java中long類型的長度為8個位元組,C語言中的長度為4個位元組(C99(99年制定的表准)標準規定:long類型的規定,不小於整形)
- C語言中沒有byte
- C語言中boolean類型,0表示為false,非零表示true
- singed:有符號範圍:-128 ~ 127–>(-2^7 ~ 2^7-1)
- unsinged:無符號範圍:0 ~ 255 –>(0 ~ 2^8-1)
- void:無類型,代表任意類型
- C語言中沒有String類型,但是可以用char數組來表示
二:輸出函數1.輸出函數就簡單多了。比java的
System.out.println()還要少幾個代碼
printf("內容");//如果需要換行我們只需要添加分行符號就行了printf("\n","內容");
2.寫一個簡單的輸出語句
main() { char c = ‘a‘; printf("c==\n",c); //使docs視窗停留 system("pause");}
為什麼沒有輸出我們的a呢?原來C語言中對輸出內容需要使用到預留位置,那我們加個預留位置來試下
main() { char c = ‘a‘; printf("c==%c\n",c); //使docs視窗停留 system("pause");}
現在終於可以輸出來了,那接下來就說一說預留位置這個鬼東西。
- int–>%d
- long int–>%ld
- char–>%c
- float–>%f
- 短整形(short)–>%hd
- double–>%lf
- 十六進位輸出–>%#x
- 無符號(unsigned)–>%u
- 字串–>%s
- 八進位–>%o
不同的類型要用不同的預留位置去輸出,否則會精度丟失。
3.現在我們來定義一些變數並對其輸出
main() { char c = ‘a‘; int i = 12345678; long l = 526247678; float f = 3.1415; double d = 3.1415926535; //後面分析,為什麼要這樣寫 char* str="我是一個字串"; printf("c==%c\n",c); printf("i==%d\n",i); printf("l==%ld\n",l); printf("f==%f\n",f); printf("d==%lf\n",d); printf("str==%s\n",str); //使docs視窗停留 system("pause");}
咦~,輸出的 f 後面怎麼多了兩個0呢?在C語言中預設保留小數點後六位,要想保留對應的位元,就需要在%後邊加上” .保留位元”如下代碼:
printf("f==%.4f\n",f);//效果就是f==3.1415,圖就不貼了
三:輸入函數1.輸入函數介紹
scanf("預留位置",記憶體位址);
2.寫一個簡單的輸入函數,從控制台輸入一個數字並將其列印在控制台上
int i;printf("親!請輸入一個數字:\n");//&i,就是取i的地址,也就是把從控制台接收到的資料賦值給i。scanf("%d",&i);printf("輸入的數字為:%d\n",i);
3.使用數組來表示我們的字串、使用for迴圈列印數組內容
//定義一個數組[]必需在數組名右邊 char arr[]= {‘H‘,‘e‘,‘l‘,‘l‘,‘o‘}; //for迴圈需要將變數在外面,不能像java一樣定義在裡面 int j; for(j=0; j<5; j++) { printf("arr[%d]=%c\n",j,arr[j]); } //C語言中沒有String類型,但是可以用char數組來表示 //直接將數組輸出 printf("arr:%s\n",arr);
4.我們還可以從控制台輸入一個字串
printf("請輸World:\n"); //聲明數組和數組長度 char arr2[5]; //將控制台的內容賦值給arr2 scanf("%s",&arr2); printf("arr2:%s\n",arr2);
5.在對數組進行輸出的時候你會發現會多輸出一些亂七八糟的東西,因為:數組是一塊連續的記憶體空間,需要在數組最後面加上一個‘\0’表示結束
char arr3[]= {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘\0‘}; printf("arr3==%s\n",arr3);
這篇文章就先講到這裡了,接下來將繼續學習C語言的指標及其他內容;學習的腳步不能停止,繼續向前邁進。
Android JNI編程(二)——C語言的基礎資料型別 (Elementary Data Type),輸出函數,輸入函數