#include<iostream>
using namespace std;
int main(){
char s[10] = "abcde";
char* first = s - 1;
cout << first << endl;
return 0;
}
当我运行时,我在控制台中得到一个空白,但当我说* first = s;我将整个char数组打印到我的控制台。我的问题是,当我将它设置为s - 1时,首先指向的是什么?
答案 0 :(得分:4)
当您设置指向s-1
的指针时,指针指向内存中位置的字符,该字符在您分配的字符串之前为char
。取消引用这样的指针是未定义的行为 - 程序可能会打印任何内容,甚至崩溃。
答案 1 :(得分:0)
first
会指向一块未分配的内存 - 行为未定义