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;

}

相关推荐
学习噢学个屁2 小时前
基于STM32语音识别柔光台灯
c语言·stm32·单片机·嵌入式硬件·语音识别
XRZaaa7 小时前
常见排序算法详解与C语言实现
c语言·算法·排序算法
jie188945758668 小时前
C++ 中的 const 知识点详解,c++和c语言区别
java·c语言·c++
彩妙不是菜喵9 小时前
算术操作符与类型转换:从基础到精通
c语言
JKHaaa10 小时前
几种简单的排序算法(C语言)
c语言·算法·排序算法
草莓熊Lotso13 小时前
【数据结构初阶】--算法复杂度的深度解析
c语言·开发语言·数据结构·经验分享·笔记·其他·算法
KyollBM13 小时前
【CF】Day75——CF (Div. 2) B (数学 + 贪心) + CF 882 (Div. 2) C (01Trie | 区间最大异或和)
c语言·c++·算法
CodeOfCC14 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows
momo卡15 小时前
MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)
c语言·c++·windows
超的小宝贝16 小时前
数据结构算法(C语言)
c语言·数据结构·算法