我可以将值初始化为指针吗?

som*_*som 1 c++

int *p;
*p=100;
cout<<*p;
Run Code Online (Sandbox Code Playgroud)

这是正确的还是应该给出一些错误?

Oli*_*rth 7

这将调用未定义的行为 ; 你正在取消引用一个未初始化的指针.但是,您的代码可能"有效",因为这是未定义行为的一种可能结果.

  • @gcc:指针未初始化; 它没有任何意义. (2认同)

Ste*_*sop 6

都不是.

这是不正确的,但C(或C++)标准没有要求它应该给出任何错误的实现.

C(或C++)中的某些东西是"未定义的行为",这意味着标准并不关心会发生什么.这是其中之一.实现可能会努力告诉您出现问题,但并不是必须这样做.您(作为程序员)有责任避免未定义的行为.