首页 > 其他分享 >C语言.多级指针

C语言.多级指针

时间:2023-08-04 12:55:42浏览次数:29  
标签:aa ld int 多级 long C语言 ff printf 指针

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{

    long aa = 123;

    long aaa = &aa;
    // warning: initialization of ‘long int’ from ‘long int *’ makes integer from pointer without a cast
    // 这里,编译器会识别出来&ff是 'long int *', 不是 ‘long int’

    long * bb = &aa;
    long ** cc = &bb;
    long *** dd = &cc;
    long **** ee = &dd;
    long ***** ff = &ee;

    long * gg = &ff;
    // warning: initialization of ‘long int *’ from incompatible pointer type ‘long int ******’
    // 这里,编译器会识别出来&ff是 'long int ******', 不是 ‘long int *’

    printf("\naa: %ld",aa);
    printf("\naaa: %ld",aaa);
    // aaa 存进取的是指针, 但是声明为long int, 所以这里直接打印为%ld没有任何错误。

    printf("\nbb: %ld",bb);
    printf("\ncc: %ld",cc);
    printf("\ndd: %ld",dd);
    printf("\nee: %ld",ee);
    printf("\nff: %ld",ff);
    // warning: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘long int *****’
    // 这些全都被警告,因为都是指针,不能当作%ld输出


    printf("\ngg: %ld",(long)(gg));
    // 这里gg也是指针,但是被转换类型后也没问题。

    puts("\n\n");
    return 0;

}


标签:aa,ld,int,多级,long,C语言,ff,printf,指针
From: https://www.cnblogs.com/etfolinbase/p/17605592.html

相关文章

  • 指针进阶(C语言)
    指针进阶头文件#include<stdio.h>#include<stdlib.h>#include<string.h>字符指针intmain(){//字符指针chararr1[]="abcdef";chararr2[]="abcdef";char*p1="abcdef";char*p2="abcdef";......
  • Qt 在线程中invokeMethod采用QueuedConnection模式,调用带指针参数槽,实际不会调用
    widgetObject有操函数Test:voidTest(int*v);在线程中调用Test,会被忽略,实际不会调用。QMetaObject::invokeMethod(widgetObject,"Test",Qt::QueuedConnection,Q_ARG(int*,&v));下面是网上找的理由: 在同一个线程中当信号和槽都在同一个线程中时,值传递参数和引用传递参数有......
  • 代码随想录算法训练营第九天| 复习字符串和双指针法(看卡哥文章复习)
     KMP算法就是在一个字符串中寻找另一个子串,避免了“跳回下一个字符再重新匹配”,实现了在一次字符串的遍历过程中就可以匹配出子串。28. 实现 strStr()  (本题可以跳过)     卡哥建议:因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的......
  • C语言实现简易版扫雷
     扫雷作为一款内置于windowsXP系统的游戏,相信大多数人都有游玩过。接下来我将带着各位用C语言来实现这个游戏。首先,我们来了解扫雷游戏的规则,将这些规则逐步用函数来实现,再经过逻辑的调整即可得到所需的代码。可以试着先自己玩一把再继续看本文章。扫雷游戏网页版-Minesweeper......
  • C语言
    C语言基础语法1.程序语言的基本构成要素:自然语言程序设计语言字数字,字母,运算符,分隔符词/词组关键字,标识符,常量句子/段落语句篇章程序1.关键字:也称保留字(ReservedWord),是C语言预先定义的、具有特殊意义的单词2.标识符:是大小写字母,数字和下划......
  • C语言 | extern关键字
    extern是C语言中的关键字,它会声明一个全局变量或者函数,表明变量或者函数是定义在其他其他文件中的。​ 定义:表示创建变量或分配存储单元。​ 声明:说明变量的性质,但并不分配存储单元。externinti; //只是声明,但没有分配内存空间给变量iinti; //是定义,给变量i分配了4......
  • 我的第九次C语言练习
    今天终于学完了弟三章,实际上昨天没剩下多少了,今天主要是在写练习。//intmain(void)//{// inta;// unsignedintb;// a=12;// b='\012';// printf("a=%d,b=%u",a,b);// return0;//}首先试了下unsignedint和正常int的不同,因为书上在打印\012时答案上只显示了unsig......
  • 数组双指针技巧汇总 [labuladong-刷题打卡 day2]
    https://labuladong.github.io/algo/challenge/ji-chu-tiao-zhan/day02/快慢指针26.删除有序数组中的重复项两个指针分别维护符合条件数组和待删除数组,当快指针移动时将符合条件元素插入已完成数组后即可。通过这两天对双指针的练习,可以发现很多双指针算法其实也是一种迭代算......
  • C语言关键字extern。
    extern:声明变量是在其他文件正声明(也可以看做是引用变量):extern用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。//文件1代码#include<stdio.h>externvoidlbw();//声明外部lbw()intmain(){ lbw();}//文件2代码#include<stdio.h>voidlbw......
  • C语言嵌入式面试
    指针1.数组指针与指针数组,函数指针与指针函数区别?答:函数指针指向函数的指针变量,即本质是一个变量。指针函数是指返回值是指针的函数,即本质是一个函数。数组指针是指向数组首元素的地址的指针,其本质为指针。(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动)指......