指向字符数组的 C++

c++ pointing to array of char

本文关键字:C++ 数组 字符      更新时间:2023-10-16
#include<iostream>
using namespace std;

int main(){
char s[10] = "abcde"; 
char* first = s - 1;
cout << first << endl;
return 0;
}
当我

运行这个时,我的控制台中出现空白,但是当我说 *first = s 时;我将整个字符数组打印到我的控制台。我的问题是,当我将其设置为 s - 1 时,首先指向的究竟是什么?

将指针设置为 s-1 时,指针指向内存中某个位置的字符,该位置比分配的字符串早一个char。取消引用这样的指针是未定义的行为 - 程序可能会打印任何内容,甚至崩溃。

first指向一块未分配的内存 - 行为未定义