c ++指向char数组

时间:2013-07-02 01:28:59

标签: c++ arrays pointers

#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时,首先指向的是什么?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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