首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于指针的一个有关问题

2012-02-20 
关于指针的一个问题我现在有点这样一个疑问,如下:inta[10],*pinta[10],*ppapa......for(i0i 10i

关于指针的一个问题
我现在有点这样一个疑问,如下:
int   a[10],*p;                                                 int   a[10],*p;
p=a;                                                                   p=a;
...                                                                     ...                                                            
for(i=0;i <10;i++)                                         for(p=a;p <a+10;p++)
        printf( "%d ",*(a+i));                           printf( "%d ",*p);

我分析的结论是用p++效率要高些,但我们老师说一般不用p++,说什么以后循环次数多了容易出错,造成数据丢失之类的.
我想问的是,p++的确有时不方便把握,但以后的复杂的程序中真不提倡用p++吗?
是不是以现在的计算机的运行速度,不需要我们太考虑这样的效率问题呢?



[解决办法]
p++ 非常要不得的 呵呵
以前经常弄错
比如你p是new出来的数组
你给++了
到后来再delete p就不好办了
只能再申明一个指针, 在让p++之前先把p的指针状态保存住才能修改指针p
[解决办法]
不会的,照用,只是要仔细一点就行了。
for(i=0;i <10;i++)
printf( "%d ",*(a+i));
这样的同样容易出错,i的值控制的不好一样容易越界。

int a[10],*p;
for(p=a;p <a+10;p++)
这样写的话,你可以用一个指针a_end赋值为a+10,然后写成
for(p=a;p!=a_end;p++)
这样就不用去记那个10了,这是c++标准库推荐的写法
[解决办法]
那个xindekaishi() ~你的程序本身就有问题哈~;
for(p=arr;p <p+200000;p++)中p <p+200000这个条件本身就是不该出现的错误;
必然引起异常的啦~~因为p永远是 <p+200000的;

指针很神奇的,用得好的话很方便的啦~~

热点排行