指针的地址、定义时连等赋值、指针的连等赋值

来源:芽雨快跑  时间: 2006-02-06 12:13:00  浏览: 22703 次  评论: 2 篇  
Tags : 指针  

  1:指针的地址可以由以下方法得到:

    int a = 5;
    int *pA = &a;
    cout<<"The &pA is :"<<&pA<<endl;

  2:在定义的时候赋值是不能连等赋值的:

  例如下面

    int x = y = z = 5;

  此时,编译器会对y 、z报错。同样,对于指针也是如此,例如:

    int *m = *n = *w = 0;

  此时,编译器会对n 、w报错。

  3:对于指针的连等赋值建议使用地址连等赋值:

  对于以下程序,编译器不会报错:

    int *m =0 , *n = 0 , *w = 0;
    *m = *n = *w = 8;//把8改为x(x已定义赋值)也一样

  但是运行程序的时候会出现错误(至少对偶的机子是这样)。Windows XP提示:

    “0x004013bd”指令引用的“0x00000000”内存。该内存不能为“written”。

  所以建议使用:

       m = n = w = &x;           

也许您对下面的文章感兴趣:
    很抱歉暂时没有!
朋友的回复:
呢称:芽雨  时间: 2006-02-06 14:14:00
  只看见书上说定义指针时要注意给它地址赋初值,一时糊涂想到在这里已经有地址值了。 
呢称:李马  个人主页:http://www.titilima.cn  时间: 2006-02-06 13:14:00
使用*单目运算符,则是对这个地址指向的值进行操作。也就是说:
*m = *n = *w = 8;
这一句是将m、n、w指向的值改写为8,而这个位置是0(NULL),一个无效地址,对无效地址指向的值进行写入则会导致程序崩溃。
要不您也来写一写?
© 2004 - 2018 芽雨快跑 - 本页面所有内容,未经芽雨许可,欢迎转载,请注明出处

京ICP备09017802号