int *ab = (int *)5656;
cout << *ab; //Here appcrash.
int *ab;
*ab = 5656;
cout << *ab; //These block crashes the app too.
但是如果我这样写,我可以获得指针内容的十六进制值:
int *ab = (int *)5656;
cout << ab; //Output is hex value of 5656.
所以我想问:* 是一个带来指针内容的运算符(?)但是为什么在这个(这些)示例中应用程序崩溃?
如果我将代码更改为此,我可以使用该运算符:
int a = 5656;
int *aptr = &a;
cout << *aptr; //No crash.
以及为什么取消引用运算符(*)会带来 char 的唯一第一个字符:
char *cptr = "this is a test";
cout << *cptr; // Here output = 't'
cout << cptr; // Here output = 'this is a test'