Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;指针和数组基础知识_C++_Arrays_Pointers - Fatal编程技术网

C++ C++;指针和数组基础知识

C++ C++;指针和数组基础知识,c++,arrays,pointers,C++,Arrays,Pointers,代码: 打印字符串(或您的情况下的字符数组)时,它必须以空字符结尾\0,否则cout将继续打印出位于内存中超过预期字符串的字符,直到它遇到空字符,或者它访问不允许读取的内存,从而导致分段错误 正在打印的末尾的“混乱”是直接经过字符数组的内存位置中的值 打印字符串(或您的情况下的字符数组)时,必须以空字符结尾\0,否则cout将继续打印内存中超出预期字符串的字符,直到它遇到空字符,或者它访问不允许读取的内存,从而导致分段错误 正在打印的末尾的“混乱”是直接经过字符数组的内存位置中的值 也在初始化后

代码:


打印字符串(或您的情况下的字符数组)时,它必须以空字符结尾
\0
,否则
cout
将继续打印出位于内存中超过预期字符串的字符,直到它遇到空字符,或者它访问不允许读取的内存,从而导致分段错误


正在打印的末尾的“混乱”是直接经过字符数组的内存位置中的值

打印字符串(或您的情况下的字符数组)时,必须以空字符结尾
\0
,否则
cout
将继续打印内存中超出预期字符串的字符,直到它遇到空字符,或者它访问不允许读取的内存,从而导致分段错误


正在打印的末尾的“混乱”是直接经过字符数组的内存位置中的值

也在初始化后
char testChar[]=“abc”实际上不需要'char*testPointer=testChar'语句,因为testChar本身就是数组第一个元素的地址。所以
cout在初始化
char testChar[]=“abc”之后也可以使用实际上不需要'char*testPointer=testChar'语句,因为testChar本身就是数组第一个元素的地址。所以,
不能完全。。如果使用printf==printf(“%s\n”,testPointer);==要打印字符串,您会看到完全相同的结果,这表明它与cout本身无关,而是与字符串的形成方式有关。这将自动在字符串末尾添加空终止符。如果您检查
的结果,则无法准确地。。如果使用printf==printf(“%s\n”,testPointer);==要打印字符串,您会看到完全相同的结果,这表明它与cout本身无关,而是与字符串的形成方式有关。这将自动在字符串末尾添加空终止符。如果您检查
cout的结果
#include <iostream>
using namespace std;

int main(int argc, const char * argv[]) {
    char testChar[] = {'a','b','c'};
    char *testPointer = testChar ;
    cout << testPointer << endl;
    return 0;
}