Android JNI編程(二)——C語言的基礎資料型別 (Elementary Data Type),輸出函數,輸入函數

來源:互聯網
上載者:User

標籤: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語言的一些區別:
  1. java中char類型的長度為2個位元組,C語言中的長度為1個位元組
  2. java中long類型的長度為8個位元組,C語言中的長度為4個位元組(C99(99年制定的表准)標準規定:long類型的規定,不小於整形)
  3. C語言中沒有byte
  4. C語言中boolean類型,0表示為false,非零表示true
  5. singed:有符號範圍:-128 ~ 127–>(-2^7 ~ 2^7-1)
  6. unsinged:無符號範圍:0 ~ 255 –>(0 ~ 2^8-1)
  7. void:無類型,代表任意類型
  8. 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),輸出函數,輸入函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.