C++非法间接数组和指针

C++非法间接数组和指针,c++,arrays,pointers,C++,Arrays,Pointers,idk whyit显示非法间接,而问题是这样的 引入int变量x和y以及int*指针变量p和q。将x设置为2,y设置为8,p设置为x的地址, q到y的地址。然后打印以下信息: 一,。x的地址和x的值。 2.p的值和*p的值。 3.y的地址和y的值。 4.q的值和*q的值。 5.p的地址不是它的内容!。 6.q的地址不是它的内容 我的代码有什么问题,请帮助我:我想这就是你要找的 #include <stdio.h> #include <iostream> using

idk whyit显示非法间接,而问题是这样的

引入int变量x和y以及int*指针变量p和q。将x设置为2,y设置为8,p设置为x的地址, q到y的地址。然后打印以下信息:

一,。x的地址和x的值。 2.p的值和*p的值。 3.y的地址和y的值。 4.q的值和*q的值。 5.p的地址不是它的内容!。 6.q的地址不是它的内容


我的代码有什么问题,请帮助我:

我想这就是你要找的

    #include <stdio.h>
#include <iostream>
using namespace std;

int main(int n, char** args)
{
        int x[]= {2};
        int y[]= {8};
        int *p = x;
        int *q = y;

        printf("0x%x 0x%x\n", x, *x);
        printf("0x%x 0x%x\n", p, **p);
        printf("0x%x 0x%x\n", y, *y);
        printf("0x%x 0x%x\n", q, **q);
        printf("0x%x \n", &p);
        printf("0x%x \n", &q);
        system("pause");
}

您缺乏对C++类型系统的基本理解。如果有int m,则写入*m;无效。出于同样的原因,如果您有int*p,则写入**p无效。您的代码与文本不匹配;它应该是int x=2;和int y=8;。对于程序的其余部分,您将需要使用操作员的地址,&。我可以看到错误,但您收到了哪些错误消息以及您正在抱怨什么。
#include <stdio.h>
 #include <iostream> 
using namespace std;
int main(int n, char** args) 
{ int x= 2; 
int y= 8;
int *p = &x; 
int *q = &y; 
printf("0x%x 0x%u\n", &x,x);
printf("0x%x 0x%u\n", p, *p);   
printf("0x%x 0x%u\n", &y, y); 
printf("0x%x 0x%u\n", q, *q);
printf("0x%x \n", &p);
printf("0x%x \n", &q); 
system("pause"); }