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;

}

相关推荐
爱编码的小八嘎15 分钟前
C语言完美演绎4-9
c语言
busideyang26 分钟前
STM32中__weak(弱定义)函数核心总结
c语言·stm32·单片机·嵌入式硬件·嵌入式
大志出奇迹40 分钟前
FreeRTOS中创建任务的顺序是否会影响任务运行的顺序?【面试重点】
c语言·rtos
2501_918126911 小时前
学习所有用c语言定义stm32的语句
c语言·stm32·嵌入式硬件·学习·个人开发
handler011 小时前
算法:Trie树(字典树)
c语言·数据结构·c++·笔记·算法·深度优先
Book思议-2 小时前
【数据结构考研真题】链表题
c语言·数据结构·算法·链表·408·计算机考研
for_ever_love__2 小时前
Objecgtive-C学习实例对象,类对象, 元类对象与 isa指针
c语言·学习·ios
zly88653723 小时前
windsurf rules与skill的使用
linux·c语言·开发语言·驱动开发
Lzh编程小栈3 小时前
数据结构与算法——单链表超详解(C语言完整实现 + 面试高频题)
c语言·开发语言·面试
聆风吟º3 小时前
【C标准库】C语言memset函数详解:从原理到实战避坑
c语言·开发语言·库函数·memset