错误:“一元*'的无效类型参数(有'廉政') [英] error: invalid type argument of ‘unary *’ (have ‘int’)

查看:2285
本文介绍了错误:“一元*'的无效类型参数(有'廉政')的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个C程序:

#include <stdio.h>
int main(){
  int b = 10;             //assign the integer 10 to variable 'b'

  int *a;                 //declare a pointer to an integer 'a'

  a=(int *)&b;            //Get the memory location of variable 'b' cast it
                          //to an int pointer and assign it to pointer 'a'

  int *c;                 //declare a pointer to an integer 'c'

  c=(int *)&a;            //Get the memory location of variable 'a' which is
                          //a pointer to 'b'.  Cast that to an int pointer 
                          //and assign it to pointer 'c'.

  printf("%d",(**c));     //ERROR HAPPENS HERE.  

  return 0;
}    

编译器产生一个错误:

Compiler produces an error:

error: invalid type argument of ‘unary *’ (have ‘int’)

有人能解释一下这个错误意味着什么?

Can someone explain what this error means?

推荐答案

由于 C 持有整数指针的地址,它的类型应该是 INT **

Since c is holding the address of an integer pointer, its type should be int**:

int **c;
c = &a;

整个程序就变成了:

The entire program becomes:

#include <stdio.h>                                                              
int main(){
    int b=10;
    int *a;
    a=&b;
    int **c;
    c=&a;
    printf("%d",(**c));   //successfully prints 10
    return 0;
}

这篇关于错误:“一元*'的无效类型参数(有'廉政')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆