欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在C語言里單引號和雙引號的區(qū)別

 更新時間:2021年07月02日 08:59:20   作者:叫我謝布斯  
這篇文章主要介紹了在C語言里單引號和雙引號的區(qū)別,本文通過代碼的實例和注釋的詳細(xì)的說明了單引號和雙引號的概念與區(qū)別,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

—— C語言中的單引號用來表示字符字面量,編譯為對應(yīng)的ASCII碼
—— C語言中的雙引號用來表示字符串字面量,編譯為對應(yīng)的內(nèi)存地址

‘a(chǎn)'表示字符字面量,在內(nèi)存中占一個字節(jié),‘a(chǎn)'+1表示‘a(chǎn)'的ASCII碼加1,結(jié)果為‘b'。
“a”表示字符串字面量,在內(nèi)存中占兩個字節(jié),“a”+1表示指針運算,結(jié)果指向“a”結(jié)束符‘\0'

分析:下面這段程序合法嗎?

char* p1 = 1;          // p1指向地址0x00000001
char* p2 = '1';        // p2指向地址0x00000031
char* p3 = "1";        // p3指向地址0x080484d0

這三條語句是合法的,會出現(xiàn)警告,但是本質(zhì)上并沒有影響程序的運行

如果程序改成這樣:

#include <stdio.h>
int main()
{
	char* p1 = 1;
	char* p2 = '1';
	char* p3 = "1";

	printf("%s,%s,%s\n", p1, p2, p3);   //出現(xiàn)段錯誤
	
	printf('\n');                       //出現(xiàn)段錯誤
	printf("\n");
	return 0;
}

小貼士:

1、字符字面量被編譯為對應(yīng)的ASCII碼
2、字符串字面量被編譯為對應(yīng)的內(nèi)存地址
3、內(nèi)存的低地址空間不能在程序中隨意訪問

在這里插入圖片描述

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

在這里插入圖片描述

程序?qū)嵗治觯?/p>

char c = “string”;

其實這個明顯是錯誤的,因為字符串會編譯為對應(yīng)的內(nèi)存地址,內(nèi)存地址占4個字節(jié),但是c只占一個字節(jié),會產(chǎn)生截斷,所以一般對于字符串,我們用指針來指向

char* p= “string”;

到此這篇關(guān)于在C語言里單引號和雙引號的區(qū)別的文章就介紹到這了,更多相關(guān)C語言里單引號和雙引號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++日歷拼圖的解法你了解嗎

    C++日歷拼圖的解法你了解嗎

    這篇文章主要為大家詳細(xì)介紹了日歷拼圖C++的解法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++實現(xiàn)將簡單密碼譯回原文的方法

    C++實現(xiàn)將簡單密碼譯回原文的方法

    這篇文章主要介紹了C++實現(xiàn)將簡單密碼譯回原文的方法,可實現(xiàn)將簡單的字母位移類型的密碼譯回原文的功能,涉及C++簡單字符串操作相關(guān)技巧,需要的朋友可以參考下
    2016-05-05
  • C++采用ring3讀取MBR實例

    C++采用ring3讀取MBR實例

    這篇文章主要介紹了C++采用ring3讀取MBR實例,可實現(xiàn)對硬盤的主引導(dǎo)記錄的讀取,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C語言/C++中如何產(chǎn)生隨機數(shù)

    C語言/C++中如何產(chǎn)生隨機數(shù)

    這里要用到的是rand()函數(shù), srand()函數(shù),和time()函數(shù)。需要說明的是,iostream頭文件中就有srand函數(shù)的定義,不需要再額外引入stdlib.h;而使用time()函數(shù)需要引入ctime頭文件
    2013-10-10
  • c++通過引用實現(xiàn)三個數(shù)字求最大值

    c++通過引用實現(xiàn)三個數(shù)字求最大值

    下面我們將通過這個例子來說明引用的作為函數(shù)參數(shù)的使用方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C語言實現(xiàn)掃雷代碼

    C語言實現(xiàn)掃雷代碼

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)掃雷代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 解讀堆排序算法及用C++實現(xiàn)基于最大堆的堆排序示例

    解讀堆排序算法及用C++實現(xiàn)基于最大堆的堆排序示例

    把待排序的數(shù)組構(gòu)造出最大堆是進行堆排序操作的基本方法,這里將帶大家來解讀堆排序算法及用C++實現(xiàn)基于最大堆的堆排序示例,首先從堆排序的概念開始:
    2016-06-06
  • 詳解C++設(shè)計模式編程中責(zé)任鏈模式的應(yīng)用

    詳解C++設(shè)計模式編程中責(zé)任鏈模式的應(yīng)用

    這篇文章主要介紹了C++設(shè)計模式編程中責(zé)任鏈模式的應(yīng)用,責(zé)任鏈模式使多個對象都有機會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系,需要的朋友可以參考下
    2016-03-03
  • c語言:基于函數(shù)指針的兩個示例分析

    c語言:基于函數(shù)指針的兩個示例分析

    本篇文章是對c語言中函數(shù)指針的兩個示例做了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實現(xiàn)enum枚舉

    C語言實現(xiàn)enum枚舉

    在實際編程中,有些數(shù)據(jù)的取值往往是有限的,只能是非常少量的整數(shù),并且最好為每個值都取一個名字,以方便在后續(xù)代碼中使用,比如一個星期只有七天,一年只有十二個月,一個班每周有六門課程等。 以每周七天為例,我們可以使用#define命令來給每天指定一個名字
    2021-06-06

最新評論