-3 c++ pointers pointer-arithmetic
我想做以下事情:
char c[] = "programming";
char *p;
*(c-1)='l';
*(c-2)='l';
*(c-3)='l';
*(c-4)='l';
*(c-5)='l';
p=&c[0];
cout<<*(c-1);
Run Code Online (Sandbox Code Playgroud)
l只有在我省略了p=&c[0];为什么会这样打印时才打印?有显然是没有关系p和c.
你对应该存在关系的期望从根本上是有缺陷的.
这都是未定义的.有如此多的优化编译器被允许做的,在这可以通过挥动的语言告诉它提供的灵活性,你不能做其他方式的任何这个东西的假设.
只是不要尝试.