在C語(yǔ)言里單引號(hào)和雙引號(hào)的區(qū)別
—— C語(yǔ)言中的單引號(hào)用來(lái)表示字符字面量,編譯為對(duì)應(yīng)的ASCII碼
—— C語(yǔ)言中的雙引號(hào)用來(lái)表示字符串字面量,編譯為對(duì)應(yīng)的內(nèi)存地址
‘a(chǎn)'表示字符字面量,在內(nèi)存中占一個(gè)字節(jié),‘a(chǎn)'+1表示‘a(chǎn)'的ASCII碼加1,結(jié)果為‘b'。
“a”表示字符串字面量,在內(nèi)存中占兩個(gè)字節(jié),“a”+1表示指針運(yùn)算,結(jié)果指向“a”結(jié)束符‘\0'
分析:下面這段程序合法嗎?
char* p1 = 1; // p1指向地址0x00000001 char* p2 = '1'; // p2指向地址0x00000031 char* p3 = "1"; // p3指向地址0x080484d0
這三條語(yǔ)句是合法的,會(huì)出現(xiàn)警告,但是本質(zhì)上并沒(méi)有影響程序的運(yùn)行
如果程序改成這樣:
#include <stdio.h>
int main()
{
char* p1 = 1;
char* p2 = '1';
char* p3 = "1";
printf("%s,%s,%s\n", p1, p2, p3); //出現(xiàn)段錯(cuò)誤
printf('\n'); //出現(xiàn)段錯(cuò)誤
printf("\n");
return 0;
}
小貼士:
1、字符字面量被編譯為對(duì)應(yīng)的ASCII碼
2、字符串字面量被編譯為對(duì)應(yīng)的內(nèi)存地址
3、內(nèi)存的低地址空間不能在程序中隨意訪問(wèn)

右上圖可知,所有低于0x08048000的地址空間都不能訪問(wèn),所以p1和p2都不能訪問(wèn)內(nèi)存地址,會(huì)出現(xiàn)段錯(cuò)誤·。

程序?qū)嵗治觯?/p>
char c = “string”;
其實(shí)這個(gè)明顯是錯(cuò)誤的,因?yàn)樽址畷?huì)編譯為對(duì)應(yīng)的內(nèi)存地址,內(nèi)存地址占4個(gè)字節(jié),但是c只占一個(gè)字節(jié),會(huì)產(chǎn)生截?cái)?,所以一般?duì)于字符串,我們用指針來(lái)指向
char* p= “string”;
到此這篇關(guān)于在C語(yǔ)言里單引號(hào)和雙引號(hào)的區(qū)別的文章就介紹到這了,更多相關(guān)C語(yǔ)言里單引號(hào)和雙引號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)一個(gè)簡(jiǎn)單的線程池的示例代碼
本文主要介紹了C++實(shí)現(xiàn)一個(gè)簡(jiǎn)單的線程池的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
使用c++編程實(shí)現(xiàn)簡(jiǎn)單的打字小游戲
這篇文章主要為大家介紹了使用c++編程語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)非常簡(jiǎn)單的打字小游戲過(guò)程實(shí)現(xiàn)的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
C語(yǔ)言中volatile關(guān)鍵字的作用及說(shuō)明
文中主要介紹了C語(yǔ)言中volatile關(guān)鍵字的含義和使用場(chǎng)景,volatile是一個(gè)類型修飾符,主要用來(lái)修飾被不同線程訪問(wèn)和修改的變量,它的作用是防止編譯器對(duì)代碼進(jìn)行優(yōu)化,確保每次直接讀取原始內(nèi)存地址的值2024-10-10
C語(yǔ)言循環(huán)隊(duì)列與用隊(duì)列實(shí)現(xiàn)棧問(wèn)題解析
循環(huán)隊(duì)列又叫環(huán)形隊(duì)列,是一種特殊的隊(duì)列。循環(huán)隊(duì)列解決了隊(duì)列出隊(duì)時(shí)需要將所有數(shù)據(jù)前移一位的問(wèn)題,本篇帶你一起看看循環(huán)隊(duì)列的問(wèn)題和怎樣用隊(duì)列實(shí)現(xiàn)棧2022-04-04

