www.zhnq.net > 指针加法程序出错

指针加法程序出错

因为在你看的程序里,头指针不用来存储数据,只是用来标识存储器(数组或者链表)

你好!! 程序的错误改好了,你对照原来的程序看看吧,循环判断部分改动比较大; 有问题再问,满意请采纳 #include<iostream>#include <stdlib.h>using namespace std; int main(){ int n,i;fifth:cout<<"输入裁判人数n:"; cin>>n; if(n<4) { cout<

都可以执行的啊,因为指针是指向内存单元地址的,对地址加减可以,所以对指针也是可以的

把return p改成return i即可.

#include<stdio.h>void main(){ int *p1,*p2,*p3,*pk; int i,a[5]; p1=a; for(i=0;i<5;i++) scanf("%d",*p3++); for(;p1<p3;p1++) { for(p2=p1;p2<p3;p2++) {if(*p2<*(p2+1)) {*pk=*p3; *p2=*(p2+1); *(p2+1)=*pk;} } } p1=a; printf("%d",*p1++);} 这样语法是没错了 但scanf那里不能用*p++ 指针只能指向已有空间 不是存数据的你要用scanf("%d",&a[i])来输入 然后p3=&a[4] 才能达到相同效果

typedef int (*FUN)() ;FUN p;p = &muilt;

执行char *p="abcdef";后,p指向的存储区长度为7字节,存储的数据按照字节顺序为: p-> 'a','b','c','d','e','f',0,x1,x2,x3,x4,那么p+4指向的是'e',在0后面是不归你管的其它数据假设是x1,x2,x3,x4执行*(int *)(p+4)=10;后,p->'a','b','c','d',10,

肯定错误的,p这个指针没有赋值任何一个地址,然后就取其地址的值,那是错误的*p = i; // 这里错误 p = &i; // 跟上面是不同的,上面是p指向的地址的值改为i,下者是p指向i的地址 可能是你刚好走运,p指向了一个可用的地址而已

必须在文本中输入数字,不然就出错

未初始化,内存泄露,二次释放空间.空指针,使用指针操作导致越界访问.由于指针过于强大,里面有很多隐式的东西可能不易被发觉.指针类型很重要.类型转换常常是问题产生的根源.

网站地图

All rights reserved Powered by www.zhnq.net

copyright ©right 2010-2021。
www.zhnq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com