天天看點

C:01---資料類型與ASCII

一、整型

int

  • 取值範圍:-32768~32767

unsigned  int

  • 取值範圍:0~65535

short  /short  int

  • 取值範圍:比int小

unsigned  short

  • 無符号短整型

long

  • 長整型
  • 定義時,後面加上l或L

有符号與無符号數:

  • unsigned:無符号數,一般用來表示資料
  • signed:有符号數,一般用來表示數字

整型占位符:

int

  • 使用%d

unsigned  int

  • 使用%u

long

  • 10進制顯示:%ld。  如果系統中int與long大小相同,用%d也可以
  • 8進制顯示:%lo
  • 16進制顯示:%lx

unsigned  long

  • %lu

short

  • 10進制顯示:%d、%hd
  • 8進制顯示:% ho

二、字元型

char

  • 占位符:%c
  • 有符号的範圍:-128~127
  • 無符号的範圍:0~255

轉義字元

\a 警告
\b 倒退
\f 換頁
\n 換行
\r 回車
\t 水準制表符
\v 垂直制表符
\\ 反斜杠\
\' 單引号
\" 雙引号
\? 問号
\0oo 八進制值(oo必須是有效的八進制數,即0~7中的一個數)
\xx xx也是八進制值
\xhh 十六進制數(hh必須是有效的十六進制數,即0~f中的一個數)
  • 例如:\x4d  ==>字元M    \12(換行符)
  • 鍵盤按住alt不送,鍵盤輸入數字,松開alt,就會列印數字對應的字元

三、浮點型

float 

  • 精确到小數點後6~7位。4位元組
  • 占位符:%f
  • 定義時,後面加上f或F。如果沒有加,編輯器會預設幫你更新為double類型

double 

  • 精确到小數點16-17位。8位元組
  • 占位符:%lf

long  double

  • float:對速度快,精度要求不高時使用
  • double:對精度要求高,資料很大的時候使用

四、void

  • void  a;   //a并沒有什麼意義,也沒有開辟空間,隻是聲明有這個變量而已。等到強制類型轉化時才開辟空間存儲

五、列印八進制、十六進制

  • 8進制:字首0
  • 16進制:字首0x或0X
  • %o:8進制顯示數字
  • %x:16進制顯示數字
  • %#o:8進制數字前面帶有0字首
  • %#x、%#X:16進制數字前面帶有0x或0X字首
  • int  a=08;      //08位八進制數
  • int  b=0x15;  //15為十六進制數

六、ASCII

這裡大家需要記住幾個常用的 字元'0'對應的碼值是48    ,字元’A‘對應的碼值是65, ’a‘對應的是97.

如果你已經有一定的C語言基礎了,那麼你可以看這塊代碼:

這段代碼就是将你輸入的字元進行強制轉換成int類型的值。

#include <stdio.h>
int main(){
     char a = ' ';
     int  b = 0;
     while(1){
       a = getchar();
       b = (int)a;
       printf("%d",b);
     }
}      

下面是我通過GDB斷點調試,列印輸出a的位址,以及a位址内的值,可以看出,實際上字元在記憶體裡的值仍然是97(隻不過我把它轉成10進制,當然你可以看二進制的數值)