当我在c ++中学习const变量时,我尝试了这个:
#include <iostream>
int main()
{
const int p = 20;
int* a = const_cast<int*>(&p);
*a = 10;
std::cout<<"Value at a: "<<(*a)<<std::endl;
std::cout<<"Value of p: "<<p<<std::endl;
std::cout<<"Their addresses : "<<std::endl;
std::cout<<a<<" "<<&p<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它产生输出:
Value at a: 10
Value of p: 20
Their addresses :
0x7fff4646d7d4 0x7fff4646d7d4
Run Code Online (Sandbox Code Playgroud)
似乎我将值10赋值给p的内存地址,但它们的值不同.为什么会这样?
像Bentley-Ottmann算法一样,有高效的算法(与O(n 2)成对测试相比)可以找到一组线段中的所有交点。但是,我想找到一组无限线中的所有交点。当感兴趣的区域是诸如矩形之类的有限区域时,可以在剪切线之后应用线段相交算法。但