C語言的常量和字符串
常量種類
C語言中,我們常使用的常量有以下幾種:
- 字面常量
- const常變量
- #define定義的標(biāo)識(shí)符常量
- 枚舉常量
代碼如下
#include<stdio.h> enum { //使用enum來建立枚舉常量 papa,//不賦值默認(rèn)從0開始,如若賦值,從此依次遞增 mama, me, familynumber }; int main() { 3.1415926;//普通的字面常量 const int a = 100;//定義const常量 printf("a=%d\n", a);//a被const定義,變得不可修改 #define T 999 printf("T=%d\n", T);//使用宏定義常量T(既define的標(biāo)識(shí)符常量) printf("familynumber=%d", familynumber);//枚舉常量的應(yīng)用,打印出一個(gè)整形 return 0; }
在用const定義一個(gè)常變量后,如仍然給這個(gè)常變量賦值,將會(huì)出現(xiàn)以下情況
注意??!
此時(shí),此常變量既不是變量也不是常量!
因?yàn)椋绻覀冇么顺W兞慷x一個(gè)數(shù)組的大小時(shí),系統(tǒng)也會(huì)報(bào)錯(cuò)
字符串
C語言中,用char定義字符類型數(shù)據(jù)變量;
我們知道了例如'a'
,是一個(gè)字符,
那么什么是字符串呢?
其實(shí)啊,字符串就是多個(gè)字符。
“Hello World!”
這就是一行簡單的字符串。
字符串的結(jié)束標(biāo)志
char arr1[] = {"abcd"}; char arr2[] = {'a','b','c','d'}; char arr3[] = {'a','b','c','d','\0'}; printf("%s\n", arr1); printf("%s\n", arr2); printf("%s\n", arr3);
此時(shí)打印出結(jié)果為
arr2里面有四個(gè)字符,與arr3相比,最后缺乏了結(jié)束標(biāo)志\0;
所以出現(xiàn)了經(jīng)典的燙燙燙燙,這是因?yàn)槿狈Y(jié)束標(biāo)志,就會(huì)導(dǎo)致數(shù)據(jù)溢出;
那為什么arr1沒有問題呢?
因?yàn)閍rr1是由字符組成的字符串,字符串的最后,隱藏有一個(gè)結(jié)束標(biāo)準(zhǔn)\0,只不過我們看不到罷了~
關(guān)于字符串的長度
我們之前了解到,想要得到某個(gè)數(shù)據(jù)類型占據(jù)了多少內(nèi)存,
得用到庫函數(shù) sizeof,
那我們?nèi)绻胍玫揭粋€(gè)字符串的長度,那我們應(yīng)該用什么呢?
strlen
int main() { printf("%d\n", strlen("abcd"));//使用庫函數(shù)strlen得到字符串的長度,注意;\0不會(huì)被計(jì)算入內(nèi) return 0; }
如此,我們便得到了字符串的長度,4
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
使用C++實(shí)現(xiàn)給PDF文檔添加文字水印
這篇文章主要為大家詳細(xì)介紹了如何通過第三方國產(chǎn)庫Spire.PDF?for?C++來實(shí)現(xiàn)給PDF文檔添加文字水印,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11如何用c++表驅(qū)動(dòng)替換if/else和switch/case語句
本文將介紹使用表驅(qū)動(dòng)法,替換復(fù)雜的if/else和switch/case語句,想了解詳細(xì)內(nèi)容,請(qǐng)看下文2021-08-08C/C++中不同數(shù)據(jù)類型之間的轉(zhuǎn)換詳解
這篇文章主要介紹了C/C++中不同數(shù)據(jù)類型之間的轉(zhuǎn)換詳解,數(shù)據(jù)類型轉(zhuǎn)換是計(jì)算機(jī)編程中常見的操作,用于將一個(gè)數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類型,本文將對(duì)不同數(shù)據(jù)類型之間的轉(zhuǎn)換作出說明,需要的朋友可以參考下2023-10-10

C++用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列(面試官的小結(jié))