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;

}

相关推荐
神里流~霜灭1 小时前
(C++)数据结构初阶(顺序表的实现)
linux·c语言·数据结构·c++·算法·顺序表·单链表
草莓熊Lotso2 小时前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
鹿鹿学长10 小时前
2025年全国大学生数学建模竞赛(C题) 建模解析|婴儿染色体数学建模|小鹿学长带队指引全代码文章与思路
c语言·开发语言·数学建模
伴杯猫10 小时前
【ESP32-IDF】基础外设开发2:系统中断矩阵
c语言·单片机·嵌入式硬件·mcu·物联网·github
Want59513 小时前
C/C++圣诞树①
c语言·开发语言·c++
l1t14 小时前
轻量级XML读写库Mini-XML的编译和使用
xml·c语言·解析器
小莞尔16 小时前
【51单片机】【protues仿真】基于51单片机停车场的车位管理系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
xianyinsuifeng17 小时前
Oracle 10g → Oracle 19c 升级后问题解决方案(Pro*C 项目)
c语言·数据库·oracle
学c语言的枫子17 小时前
数据结构——双向链表
c语言·数据结构·链表
3壹19 小时前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法