c error: ‘*scan’ is a pointer; did you mean to use ‘->’?

此错误容易出现在**指针访问时,解决方法是使用()括起来,原因主要是类型不匹配。

#include <stdio.h>

#include <stdlib.h>

struct ac{

int data;

struct ac *next;

};

void address(struct ac *p)

{

struct ac *next, **scan;

struct ac pa;

pa.data = 10;

pa.next = &pa;

next = p->next;

scan = &p->next;

printf("pa = %p\n", &pa);

printf("pa.a = %p\n", &pa.data);

printf("pa.next = %p\n\n", &pa.next);

printf("next = %p\n", next); // 一级指针指向地址 p->next

printf("scan = %p\n", scan); // 一级指针地址 &p->next

printf("*scan = %p\n\n", *scan); // 一级指针指向地址 p->next

printf("p->next = %p\n", p->next); // 一级指针指向地址 p->next

printf("p->next->next = %p\n", p->next->next); // 一级指针指向地址 p->next->next

printf("p->next->next->next = %p\n\n", p->next->next->next); // 一级指针指向地址 p->next->next->next

printf("&p->next->next = %p\n", &p->next->next); // 一级指针地址

printf("&(p->next)->next = %p\n", &(p->next)->next); // 一级指针地址

printf("&(p->next->next) = %p\n\n", &(p->next->next)); // 一级指针地址

printf("(*scan)->next = %p\n\n", (*scan)->next); // 一级指针指向地址 p->next->next
//printf("*scan->next = %p\n", *scan->next); // error: '*scan' is a pointer; did you mean to use '->'?
//printf("scan->next = %p\n", scan->next); // error: '*scan' is a pointer; did you mean to use '->'?

if ((*scan)->next == next) {

printf("ditto\n\n");

}

p->next->next = &pa;

printf("next = %p\n", next); // 一级指针指向地址 p->next

printf("scan = %p\n", scan); // 一级指针地址 &p->next

printf("*scan = %p\n", *scan); // 一级指针指向地址 p->next

printf("(*scan)->next = %p\n", (*scan)->next); // 一级指针指向地址 p->next->next

//printf("*scan->next = %p\n", *scan->next); // error: '*scan' is a pointer; did you mean to use '->'?

printf("p->next->next = %p\n", p->next->next); // 一级指针指向地址 p->next->next

}

int main()

{

struct ac p;

p.data = 10;

p.next = &p;

printf("p = %p\n", &p);

printf("p.a = %p\n", &p.data);

printf("p.next = %p\n\n", &p.next);

address(&p);

return 0;

}

相关推荐
艾莉丝努力练剑6 分钟前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)
c语言·开发语言·数据结构·学习·算法
黑听人21 分钟前
【力扣 困难 C】115. 不同的子序列
c语言·leetcode
看到我,请让我去学习6 小时前
OpenCV编程- (图像基础处理:噪声、滤波、直方图与边缘检测)
c语言·c++·人工智能·opencv·计算机视觉
倔强的小石头_8 小时前
【C语言指南】函数指针深度解析
java·c语言·算法
jz_ddk15 小时前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
无小道16 小时前
c++-引用(包括完美转发,移动构造,万能引用)
c语言·开发语言·汇编·c++
FirstFrost --sy17 小时前
数据结构之二叉树
c语言·数据结构·c++·算法·链表·深度优先·广度优先
森焱森17 小时前
垂起固定翼无人机介绍
c语言·单片机·算法·架构·无人机
秋说20 小时前
【PTA数据结构 | C语言版】两枚硬币
c语言·数据结构·算法
☆璇21 小时前
【数据结构】栈和队列
c语言·数据结构