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

时间:2014-11-13 02:01:51

标签: c++ arrays pointers

    #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");
}

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

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

&#34; 1。 x的地址和x的值。 2. p的值和* p的值。 3. y的地址和y的值。 4. q的值和* q的值。 5. p的地址(不是它的内容!)。 6. q的地址(不是其内容!)。&#34;

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

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西

#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"); }