C语言 求帮助,下面的一段代码为什么q=&p;为什么出错,求修改!!!

//指针练习

#include<stdio.h>

int main()
{
int a=1;
int *p;
int *q;
p=&a;
q=&p;
printf("%d\n",a);
printf("%p\n",&a);
printf("%p\n",p);
printf("%p\n",&p);
printf("%d\n",*p);
printf("%p\n",q);
printf("%p\n",&q);
printf("%p\n",*q);
printf("%d\n",**q);
return 0;
}
q=&p;求大神帮助,新手求助,我这个是把指针p这个地址放到指针q里,出错了???

p与q都是指针不能用q=&p应该改为p=q;追问

printf("%d\n",**q); 怎么非法间接寻址???怎么修改,求帮助

追答

你并没有定义2级指针当然不行了将你的int *q改为int **q,然后其他不改,也不要用p=q,因为在二级指针与一级指针间的赋值q = &p是正确的

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-14
int *q  改成 int **q
因为 q = &p, 指向指针的指针。

第2个回答  2014-04-14
&p是取指针p所指向的值吧 我记得是...
第3个回答  2014-04-14
指针P的地址就是P;直接q=p;就可以了!!

C语言 求帮助,下面的一段代码为什么q=&p;为什么出错,求修改!!!
p与q都是指针不能用q=&p应该改为p=q;

c语言小白,请问为什么我的这段代码输出结果不正确?应该怎么改呢?求具...
1、大改了统计个数的代码块,修改为:思想:当arr[i]为1时,计num为1,循环遍历当前元素之后的元素arr[i+1],如果arr[i+1]也是1,则计数num+1,i也+1,再次while循环,此时就是相当于看arr[i+1+1],如果还是1,则再重复前面的步骤,直到出现0为止。出现0后,while循环结束,把本次统计得...

求问c语言,小弟是菜鸟,我的这段代码为什么编译和链接都没有问题,运行起...
这是因为你的程序 一下子就执行完成 退出了

C语言习题求助,编译通过,运行错误,高分求解
if( p == NULL ) \/* 内存分配失败,返回 NULL *\/ { \/* 该段代码用于判断是否为指针变量 p 成功分配到内存,是必不可少的 *\/ printf("Memory allocation failured !\\n") ;exit(1) ; \/* 若内存分配失败,退出应用程序,否则的话,严重的话,就有可能使系统崩溃!!! *\/ } strcpy(p,...

刚学c语言没多久,这次真的不知道哪里做错了,求知道的前辈帮帮忙, 下面...
仔细看了看,把 #include<process.h> 和 system("pause"); 两句话去了应该就可以了。主体代码是没有问题的。注意你的scanf输入的时候需要用 逗号 做分隔。如输入参数:1,50 得到结果:6,28

c语言编程错误解析:下面是代码(跟上一个提问不一样),请问错在哪儿?为什 ...
第一个:pS = (double *)malloc(sizeof(double)*index);pS[NUM_P]是分配好内存的了,你定义的42,pS是常量,无法进行赋值操作。你需要重新定义指针变量来操作 第二个:strcpy()是针对字符串的,不能将浮点数拿来拷贝,你就改成:pS[j++] = zhuanhuan;更何况你还写的pS[j++],假如pS[]是...

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
这段代码的问题在于图中红色框内jc数据类型不合适,不能定义为int,需为double。解释:C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,...

C语言if语句嵌套与&&的关系,下面的代码为什么&&2个判断条件可以,而嵌 ...
= '\\0'){ \/*如果将下面的判断语句改为 if(*p != ' ')if(*(p-1) ==' ') 这样就会出问题,请问原因为何 *\/\/\/===\/\/改为这样子,是可以的 if(*p != ' '){if(*(p-1) ==' ') {*p = toupper(*p);}}p++;\/\/===\/\/if( (*p != ' ') && (*(p-1) ==' ') )...

【C语言问题】为什么下面两行代码运行后会出现两个莫名其妙的字符,求...
你好 对于字符数组的初始化,要注意字符结束符\\0 就是说你在初始化字符数组的时候:最后一个元素应该是:\\0 表示到这儿就结束 否则就会乱码 因此应该改为:char c[]={'i',' ','a','m',' ','h','a','p','p','y','\\0'};希望能帮助你哈 ...

这段代码错哪了啊 为什么一直error C2143: syntax error : missing...
很明显你的基本功有问题啊,基本的函数定义格式你给搞错了,&出现在函数定义里面很明显是错误的,而void foo(bar)在c语言的某些版本中是允许的,所以系统会尝试进行正确的匹配,但是又找不到一个)作为结束,所以错误就发生了。

相似回答