Das Abschlusszeichen „\0“ in der C-Sprache

Das Abschlusszeichen „\0“ in der C-Sprache

„\0“ ist das Ende einer Zeichenfolge in der C-Sprache. Seine Dezimalausgabe: 0, Zeichenausgabe: Nullzeichen (nichts, leer).
(In der C-Sprache werden Zeichenfolgen bei der englischen Eingabemethode in doppelte Anführungszeichen eingeschlossen, während Zeichen bei der englischen Eingabemethode in einfache Anführungszeichen eingeschlossen werden . Aufgrund von Texteingabeproblemen werden in diesem Artikel die einfachen Anführungszeichen einiger englischer Eingabemethoden verwendet kann nicht eingegeben und angezeigt werden. Einfache Anführungszeichen für chinesische Eingabemethode)
„\0“ ist ein Übersetzungszeichen, das dem Compiler mitteilen soll, dass es sich nicht um das Zeichen 0, sondern um ein Nullzeichen handelt. Der dem Nullzeichen \0 entsprechende Binärwert ist 00000000, und die Zahl 0 entspricht 00110000 (dh dem ASCII-Code 0x30).
Einige sind unten aufgeführt 代码.

//输出\0
	printf("%c\n", 0);
	printf("%c\n", 0x30);
	printf("%c\n", '\0');
	printf("%d\n", '\0');
	printf("OK\n");	
//Ubuntu编译运行new3.c文件
gcc new3.c 
./a.out
//输出结果如下

0

0
OK

In der Sprache C enden Zeichenfolgen immer mit „\0“. Wenn eine Zeichenfolge in einem Array gespeichert wird, wird daher auch das Abschlusszeichen „\0“ im Array gespeichert und als Zeichen dafür verwendet, ob die Zeichenfolge endet. Mit dem Abschlusszeichen „\0“ ist es nicht erforderlich, die Länge des Zeichenarrays zur Beurteilung der Länge der Zeichenfolge zu verwenden.

Zum Beispiel

Weisen Sie dem Array eine Zeichenfolge zu: char str[] = {“yyds”};
Tatsächlich ist die tatsächliche Speicherung des Arrays str im Speicher:
yyds '\0'
Das folgende '\0' wird vom C-Compiler automatisch kompiliert System hinzugefügt. Daher ist es im Allgemeinen nicht erforderlich, die Länge des Arrays anzugeben, wenn der Anfangswert einer Zeichenfolge zugewiesen wird, und das System verarbeitet dies selbst.
Kopieren Sie die Zeichenfolge im Zeichenarray str in das Zeichenarray arr. Die String-Endmarkierung „\0“ wird ebenfalls mitkopiert.
Einige sind unten aufgeführt 例子程序.

	char str[] = {
    
    "yyds"};
	int i = 0;

	printf("数组str长度为:%ld\n", sizeof(str));

	for(i; i < sizeof(str); i++)
	{
    
    
		printf("str[%d] = %c\n", i, str[i]);	
	}
	printf("OK");
数组str长度为:5
str[0] = y
str[1] = y
str[2] = d
str[3] = s
str[4] = 

OK

besonderer Fall

  1. Die Array-Länge reicht nicht aus. Angenommen, ein Array ist definiert, wie zum Beispiel: char str[4]={“yyds“};
    Da die Länge der Zeichengruppe str 4 beträgt, gehen die nachfolgenden Informationen verloren, d. h. der Abschluss ist „\0“. verloren.

  2. Wenn Sie jedes Zeichen einem Array zuweisen, schließen Sie jedes Zeichen in Anführungszeichen ein. Das '\0' geht ebenfalls verloren. Zum Beispiel:
    char str[]={'y','y','d','s'};

Wenn das Array mit „\0“ enden soll, können Sie es in einer der folgenden drei Formen schreiben:

  1. char str[ ]= {"yyds"}; //String-Zuweisung
  2. char str[] = {'y','y','d','s','\0'}; //Endzeichen \0 manuell hinzufügen
  3. char str[5] = {'y','y','d','s'}; //Bewusst einen Platz für das Array reservieren

Supongo que te gusta

Origin blog.csdn.net/William_swl/article/details/120205948
Recomendado
Clasificación