哥斯拉不说话 发表于 2015-5-11 09:18:50

C语言指针问题

两种情况都没有报错能正常运行, 但是一个有提醒一个没有提醒, 为什么啊?
#include <stdio.h>

void main()
{
    int i;
// int*p1, *p2;   // 这样没有提醒
    int*p1, **p2;   // 这样就会提醒   'int ** ' differs in levels of indirection from 'int *'
   
    i = 1;
    p1 = &i;
    p2 = p1;
   
    printf("%d\n%d\n%d\n", i, *p1, *p2);
}

万籁无声 发表于 2015-5-11 17:43:53

(11): error C2440: “=”: 无法从“int *”转换为“int **”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

万籁无声 发表于 2015-5-11 17:44:28

万籁无声 发表于 2015-5-11 17:43
(11): error C2440: “=”: 无法从“int *”转换为“int **”
1>          与指向的类型无关;转换要求 re ...

我也不懂!vs2010就是这么说的,自己解决吧!

万籁无声 发表于 2015-5-11 17:45:52

#include <stdio.h>

void main()
{
    int i;
// int*p1, *p2;   // 这样没有提醒
    int*p1, *p2;   // 这样就会提醒   'int ** ' differs in levels of indirection from 'int *'
   
    i = 1;
    p1 = &i;
    p2 = p1;
   
    printf("%d\n%d\n%d\n", i, *p1, *p2);
}

万籁无声 发表于 2015-5-11 17:46:30

你第七行p2前面删掉一个*
页: [1]
查看完整版本: C语言指针问题