C++非法间接数组和指针
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的地址不是它的内容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
我的代码有什么问题,请帮助我:我想这就是你要找的
#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"); }