C語言的常量和字符串

常量種類

C語言中,我們常使用的常量有以下幾種:

  • 字面常量
  • const常變量
  • #define定義的標識符常量
  • 枚舉常量

代碼如下

#include<stdio.h>
enum { //使用enum來建立枚舉常量
	papa,//不賦值默認從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的標識符常量)	
	printf("familynumber=%d", familynumber);//枚舉常量的應用,打印出一個整形
	return 0;
}

在用const定義一個常變量後,如仍然給這個常變量賦值,將會出現以下情況

在這裡插入圖片描述

註意!!

此時,此常變量既不是變量也不是常量!

因為,如果我們用此常變量定義一個數組的大小時,系統也會報錯

在這裡插入圖片描述

字符串

C語言中,用char定義字符類型數據變量;

我們知道瞭例如'a',是一個字符,

那麼什麼是字符串呢?

其實啊,字符串就是多個字符。

“Hello World!”

這就是一行簡單的字符串。

字符串的結束標志

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);

此時打印出結果為

在這裡插入圖片描述

arr2裡面有四個字符,與arr3相比,最後缺乏瞭結束標志\0;

所以出現瞭經典的燙燙燙燙,這是因為缺乏結束標志,就會導致數據溢出;

那為什麼arr1沒有問題呢?

因為arr1是由字符組成的字符串,字符串的最後,隱藏有一個結束標準\0,隻不過我們看不到罷瞭~

關於字符串的長度

我們之前瞭解到,想要得到某個數據類型占據瞭多少內存,

得用到庫函數 sizeof,

那我們如果想要得到一個字符串的長度,那我們應該用什麼呢?

strlen

int main() {
	printf("%d\n", strlen("abcd"));//使用庫函數strlen得到字符串的長度,註意;\0不會被計算入內
	return 0;
}

如此,我們便得到瞭字符串的長度,4

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: