C++入门经典-例6.3-字符串之未使用字符串结束符“”和使用字符串结束符“”的区别

1:为字符串数组赋值的方式有两种,即数组元素逐一赋值和使用聚合方式赋值。

    为数组元素逐一赋值。例如:

pWord[0]='H';

使用聚合方式赋值如:

char pWord[]={'H','E','L','L','O'};

2:字符数组的一些说明

(1)聚合方式只能在数组声明的时候使用

char pWord[5];

pWord={'H','E','L','L','O'};//错误

(2)字符数组不能给字符数组赋值

char a[5]={'H','E','L','L','O'};

char b[5];

a=b;//错误

a[0]=b[0];//正确

3:字符数组常作为字符串使用,作为字符串要有字符串结束符''

    可以使用字符串为字符数组赋值。例如:

char a[]="HeLLO WORD";

等同于

char a[]="HeLLO WORD";

代码如下:

未使用字符串结束符''时

// 6.3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main()
{
    int i;
    char array[12];
    array[0]='a';
    array[1]='b';
    printf("%s
",array);
}
View Code

运行结果:

使用结束符''后

// 6.3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
void main()
{
    int i;
    char array[12];
    array[0]='a';
    array[1]='b';
    array[2] = '';
    printf("%s
",array);
}
View Code

运行结果:

    可见,如果字符串没有结束符,函数会按整个字符数组输出。array字符数组中只有前两个字初始化了,所以未使用字符串结束符''的程序会出现乱码。

原文地址:https://www.cnblogs.com/lovemi93/p/7530553.html