簡體   English   中英

C / C ++中的C字符串定義

[英]C-string definition in C / C++

在C / C ++中用“C-string”這個詞真正意味着什么? 指向char的指針? 字符數組? 或者也許const-pointer / const數組的字符?

“C字符串”是以0(空字符)字節結尾的字符數組。 數組,而不是任何指針,是字符串 因此,C字符串的任何終端子陣列也是C字符串。 char * (或const char *等)類型的指針通常被認為是指向字符串的指針,但它們實際上是指向字符串元素的指針,通常被視為指向字符串初始元素的指針。

Const或非const字符數組,以尾隨0 char結尾。 所以以下所有都是C字符串:

char string_one[] = { 'H', 'e', 'l', 'l', 'o', 0 };
char string_two[] = "Hello"; // trailing 0 is automagically inserted by the compiler
const char *string_three = "Hello";

C字符串是一系列由0字節終止的字符,也稱為空終止字符串 它既可以作為數組( char[] )訪問,也可以作為指向第一個字符( char * )的指針訪問。

在C ++中,還有另一種名為std::string ,它不需要以0字節終止。 C-string這個術語通常用於C ++程序員,當它們表示空終止字符串而不是std::string類型時。

根據標准(C11§7.1.1), 字符串是由第一個空字符終止並包括第一個空字符的連續字符序列, '\\0'終止的字符數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM