汽车维修有哪四个工种:急救C++中的指针问题!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/26 23:20:23
问题1:
long a=9;
long *p1 = &a
long *p1 = 0
a最后的值应该为0吧

但是如果直接向下面这样去写,那p1的值应该是一个地址,这个地址按照下面的运算应该是0吧,也就是P1的值为0对吗?还是PA的值不知道,将报错找不到这个地址,而无法将0赋值到这个地址上去?
long *p1 = 0

问题2:
char *p1 = 0; p1++; p1 = p1 + 5 * 8 - 1; short *p2 = 0; p2 += 11; p2--;
上面p1的值为40,p2的值也为40,因为p1的原类型是char而p2的是short。
问题1:
p2的最后的值不应该是10吗?但是上面确说是40?是上面说的正确还是我说的正确?
问题2:
上面说P1的值的这个值应该被解释成一个地址(也就是指针值)还是应该被解释成一个CHAR或SHORT类型呀

long a=9;
long *p1 = &a
long *p1 = 0
这样子通不过编译吧?p1变量怎么可以被声明两次?

a是作用引用的
可以这样赋值的