类似这样的C语法:
const int * pConstInt;在Delphi中如何实现?

解决方案 »

  1.   

    var
      pint:^integer;const
      Max_value:integer=$01020304;begin  pint:=@Max_value;
      showmessage(inttostr(pint^));
      
      Max_value:=100;///----这一步操作会报错!无法编译的!!  //---下面的操作就是属于改变常量的值了.
      //---所以在D中用指针来操作常量是会有危险的!  pint^:=$1234;
      showmessage(inttostr(pint^));
      
      showmessage(inttostr(Max_value));///---此时,Max_value的值已发生变化,不再是原来的值了!end;
      

  2.   

    我的目的就是希望用指针时不要误写了指针所指向的内存.C中,是不能通过指向常量的指针,来修改指针指向的对象的,否则编译时就会报错.int i;
    const int * pConstInt=&i;
    (*pConst)=0;上面的语句是不能编译通过的.我不是要这样:
    var
      pint:^integer;
    const
      Max_value:integer=$01020304;
    begin
      pint:=@Max_value;
    ....指向常量的指针 是一种类型, 我要实现这种类型,而不是说 要把指针指向常量.
      

  3.   

    这个问题我以前就问过了。最后得出的结论是:寄望于未来的Delphi吧~~~~~~
      

  4.   

    const
      iConst: Integer = 100;
      pConst: Pointer = @(iConst);只不过这pConst,是一个指向常量的常量指针还有
    c中,const是个不能变的变量
    c++中,const定义的是个常量
      

  5.   

    楼主.D与C++是不同的.存在差异,你就不要钻牛角尖了....如果是想要得到一个指向常量的指针.就用我上面给你的方法,但是存在潜在的危险.如果是想用常量时,你在D中直接用CONST定义一个吧.D中指针的类型与功能没有C++中指针类型与功能那么非富!哎......
      

  6.   

    -_-!
    dinglinger(红辣椒) 热情可嘉...