單引號、雙引號、int和char


首先說一下C語言中用單引號和雙引號的不同(一直搞不清楚):

單引號代表的是一個整數,而這個整數的值是編譯器所采用的字符集中的字符序列對應的值。所以一般'A'和ASCII中的65意義相同。
對於雙引號定義的我們可以叫他“字符串”,那么對於單引號定義的我們叫他字符常量或者字符。

再說說int和char,現在感覺自己C語言中好多概念模糊啊,很多到用到的時候總是弄不清楚,基礎不打好怎么向上進步呢?所以還是靜下心來好好鞏固一下基礎吧。

int是有符號整型,大部分系統默認int是long int,占4個字節,也就是32比特,32位二進制數。short int 就是占兩個字節了。
而char是字符型,占一個字節,可以用來表示一個字節的有符號整型數,但是用char定義整型數的時候要注意區分有符號和無符號,有符號char型的取值范圍是(-128~+127),無符號整型數的取值范圍是(0~255),定義的數一旦超過這個范圍,即產生溢出,使數據出錯,這是很嚴重的錯誤,千萬記住。不同的編譯器char表示的不同,我用的 cfree5里面,char就默認是有符號char(估計大部分也都是有符號的),最大只能定義127。也可以定義一個字符。但是定義的這個字符是以ASCII碼值的8位二進制信息存放在內存里面的,不是一個字符存放在里面。那么再結合int來看,也就是說我們可以定義一個int類型的變量來存放四個字符。也最多只能存放4個單字符。但是這種方式編譯器會警告。
所以有時候想要節省單片機的空間的話可以定義char類型,但是有兩點需要注意,一是注意你需要的數是有符號還是無符號,二是注意這個數不要溢出。
之前我用單片機編程的時候。看人家用char我也用char。人家用unsigned char我也用,一點不清楚到底什么時候用這個?為什么用這個。今天總結完這些,開始明白了。

既然char和int本質都是整數,為什么還要作區分呢?
因為字符的個數相對較少,也就128個,因而char型變量的存儲單元可以比int型變量的存儲單元小。其實就是提出一種char型變量專門存儲字符,方便程序員的數據選擇。

下面簡單講一下字符串:

定義一個字符串常量的時候主要有兩種方法:

#include "stdio.h"

char ch[] = "abcdef";//用一維數組來存放字符串  
char *p = "hello,world";//用一個指針指向字符串的開頭地址  

int main(){
    
    printf("%s\n",ch);
    printf("%s\n",p);
    puts(ch);//使用puts函數輸出字符串 
    puts(p); //puts輸出字符串之后會自動換行 
}

但是字符串數組就需要二維數組來存放了。其實字符串數組就是二維數組。

#include "stdio.h"
 

char a[3][6] = {//二維數組存放多個字符串
    "hello",
    "world",
    "hi!",
}; 

int main(){
    
    for(int i = 0;i<3;i++){
        
        printf("%s\n",a[i]);
    }     
}

其實都是很基本的C語言知識,但是誰讓當時自己沒有認真學的呢?現在只能慢慢來彌補了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM