求解一道c语言指针和&运算题: #include<studio.h> void main() {int a[5]={1,2,3,4,5};

求解一道c语言指针和&运算题:
#include<studio.h>
void main()
{int a[5]={1,2,3,4,5};
int *p=a,**q=&p;
printf("%d",*(p++));
printf("%d",**q);
}

如果用存储单元来表示,如图,哪里错了?

q=&p
所以是*q=p
第一个就错了。
**q就是*p 经过上一个p++之后,p=&a[1]
所以输出**q是a[1]也就是2
代码里**q=&p. 这里是定义。 int **q=&p;
所以等效于
int **q;
q=*p;追问

大概懂您的意思了,就是说:
int **q=&p;
的等价语句为:int**q,q=&p;
*q=p对吗?

大概懂您的意思了,就是说:
int **q=&p;
的等价语句为:int**q,q=&p;
*q=p对吗?

追答

是这样的

追问

谢谢了~٩۹(๑•̀ω•́ ๑)۶

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言找错题#include<stdio.h> void main()
题主的代码在我这里是可以运行的,编译器是VISUAL STUDIO 2013 所以可能是编译器的问题,题主可以尝试把void改成int并在printf后加上return 0;如果可以运行说明编译器只支持C语言,不兼容C++编译。

这个c语言代码有错误么? #include <studio.h> int main() {_百度...
include <studio.h> int main(){ printf("hello world\/n");return 0;}

Dev-C++输入两行数据.第一行包含10个整数,相邻的整数之间用一个空格隔开...
可以用c语言编程呀 那样简单些呀 include<studio.h> void main(){ int a[]={2,2,2,1,5,5,6,9,8,10};int i;for(i=0;i<=8;i++){ printf("%d ",a[i] );\/*输出前9个数,其中%d后面有一空格*\/ } printf("\\n%d",a[i]);\/*换行,输出最后一个数 *\/ } ...

怎么给一个指针赋值
1、打开visual studio,创建一个控制台应用程序,用于演示指针的使用、赋值和取值。2、在Main方法中,添加一个unsafe代码段,C#语法中的指针都需要放在这个代码段中。3、定义一个指针变量,与定义普通变量唯一的区别就是在变量的类型后面加上一个星号。例如:定义一个整型指针变量p,定义形式如下:int* p...

计算机二级C语言100套上机填空题和改错题
1、 改错题1下列给定程序的功能是:读入一个整数(2<=k《=10000》,打印它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include...

...2010 在编写C语言,问一下#include "stdafx.h" 和#include "stdio.h...
stdio.h是C\/C++中标准的头文件,这个文件是系统头文件,由编译器厂商提供。stdafx.h是vc生成工程是生成的用户头文件,属于工程的一部分,stdafx.h是vc工程的预编译头文件。用于包含工程中每个都文件都要包含的文件。用于加快编译速度和整理代码结构 比如工程由四个cpp文件组成:a.cpp b.cpp c.c...

C语言错误
8 -6 5 0 1 -2 输出: 3 2 1然后我是这样写的:#include<stdio.h>void main(){ int i,j=0,k=0,g=0,q; float a[]; printf("想要多少个数啊\\n"); scanf("%d",&i); if(i>20||i<0) { printf("最多20个正数\\n"); } else if(i=0) { printf("你在逗我\\n"); } else { ...

c语言编程利用自定义函数求两个数的和
c语言编程利用自定义函数求两个数的和的方法如下:首先需要定义一个自定义函数,命名为sum,参数为两个整数a和b,返回值为整数类型。在自定义函数中,使用return语句返回a和b的相加结果。在主函数中,定义两个整数变量x和y,使用scanf()函数从键盘输入它们的值。在主函数中,调用sum(x,y)函数,并将...

如何用C语言实现1到10之间所有偶数的和?
编程实例 include<stdio.h>int main() {int vs[2] = { 0 };\/\/定义一个数组用于分别记录奇偶值for (int i = 1; i <= 10; i++) {\/\/循环遍历1到10之间的值vs[i % 2]++;\/\/%是取余数运算符,一个正整数取余2会返回0或1的值,用它和数组配合可以方便的计算该问题}printf("奇数个...

用简单的c语言编写四则运算题
int main(){ int type = -1;int data = -1;int choice,num1,num2,results;float div_result;int right = 0;int wrong = 0;char ch;printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\\n");srand((unsigned int)time(NULL));while(1){ printf("请选择运算类型:1.加法 2....

相似回答