C语言之初学者也能玩的明白的关键字,define,指针与结构体

 💘作者:你我皆为凡人

 💘博客主页:你我皆为凡人的博客

 💘牛客注册链接:牛客网练习题 (无需下载,直接点开注册练习题)

 💘刚注册的公众号:凡人的编程世界(微信搜索)

 💘名言警句:时间不会为任何人停留,而事物与人,无时不刻也在变化着。每一个人,也都在不停向前!

 💘觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!

 💘其他作品:

 

文章目录

目录

文章目录

前言

 

 💘1 常见关键字

        💕 常见关键字有哪些?

        🎉关键字typedef  

                ✨ typedef  顾名思义是类型定义,这里应该理解为类型重命名

          🎉关键字static 

                ✨ 1,修饰局部变量--称为静态局部变量

                ✨ 2,修饰全局变量--称为静态全局变量

                ✨ 3,修饰函数--称为静态函数

💘2 #define定义常量和宏

                ✨define定义标识符常量

                ✨define定义宏

💘3 指针

                ✨内存

                 ✨指针变量存放的大小

💘4 结构体

总结

 


 

前言

本篇介绍了关于初识C语言中的常见关键字,define,指针与结构体,让新手小白都能看懂的详细介绍


提示:以下是本篇文章正文内容,下面案例可供参考

 


 💘1 常见关键字

        💕 常见关键字有哪些?

auto      break           case          char          const           continue          default          do   double         else          enum          extern         float          for           goto          if           int   long          register            return           short          signed         sizeof           static         struct  switch          typedef         union          unsigned           void          ​​​​​​​volatile          while

 注意:1,关键字,C语言本身内置的,关键字不是自己创建出来的,也不能自己创建

                ✨关键字auto   自动的意思,自动创建自动销毁,所有的局部变量之间都会有aoto的,只不过自动省略了

int main()
{
    int a = 10;//自动变量
    auto a = 10;//前面都有auto,所以可省略
    return 0;
}

                 ✨关键字 break continue  do while  for  goto​​​​​​​    是与循环相关的

                ✨关键字 case  default  else if  Switch  与分支相关

        ​​​​​​​        ​​​​​​​✨关键字 union(联合体)  char  double  short long int enum (枚举) signed (有符号的)  unsigned(无符号的)  sizeof  typedef  (类型重命名)  void(无,函数的返回类型)  与类型相关,内置类型

                 ✨关键字const  修饰变量,变为常属性,不可被修改

                 ✨关键字extern  声明外部符号的

                ✨关键字register  寄存器的一个关键字   static  静态

                 ✨关键字return  返回值,一般最后加

                 ​​​​​​​🎉  上面的介绍是让大家知道有这些关键字,关键字先介绍以下几个,后期会出一篇专门详细介绍关键字的文章

        🎉关键字typedef  

                ✨ typedef  顾名思义是类型定义,这里应该理解为类型重命名

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_14,color_FFFFFF,t_70,g_se,x_16

          🎉关键字static 

                ✨ 1,修饰局部变量--称为静态局部变量

🎄 没加static之前:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 🎄 加了static之后

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

🙈 局部变量一般在栈区内存放,进了作用域创建,出了就销毁,如果加上static就称为了静态变量放入了静态区,不会被销毁,生命周期边长,和程序的生命周期一样长,不会重新开辟区域

                ✨ 2,修饰全局变量--称为静态全局变量

🎄 没加static之前:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

🎄 加了static之后:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 🙈全局变量是具有外部链接属性的,如果加上static修饰以后,全局变量的外部链接属性就变成了内部链接属性,其它源文件.c就不能在使用到这个全局变量了

                ✨ 3,修饰函数--称为静态函数

🎄 没加static之前:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 🎄 加了static之后:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 🙈一个函数本来是具有外部链接属性的,但是如果被static修饰以后,外部链接变成了内部链接,其他源文件无法使用,与全局变量差不多

💘2 #define定义常量和宏

                ✨define定义标识符常量

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_15,color_FFFFFF,t_70,g_se,x_16

                ✨define定义宏

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_16,color_FFFFFF,t_70,g_se,x_16

💘3 指针

                ✨内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

就像是去找朋友,去了一个小区 有很多楼,每个楼的房间都是一个单元,如果你一个一个找的话很麻烦,但是如果每个单元都有一个地址,那么你直接找这个地址就很方便

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_8,color_FFFFFF,t_70,g_se,x_16

 


 🙈为什么要讲以上的知识呢?其实变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

十进制是 0 1 2 3 4 5 6 7 8 9 

八进制是 0 1 2 3 4 5 6 7

十六进制是 0 1 2 3 4 5 6  7 8 9 a b c d e f

10就是a  存放一般是存放2进制   10的二进制是  

0000 0000 0000 0000 0000 0000 0000 1010 二进制看起来不方便,转换16进制就是

  0       0       0        0        0        0      0      a

就是16进制中的 0x  00 00 00 0a而到这存放就是以上图片中的内存,关于为什么到这存 这个以后将关于大端小端的问题

 如何取出a的地址呢?watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 指针变量是什么呢 如何解析呢?watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 存放地址有什么用呢 ?

如果你要位朋友的地址,把朋友的地址给记下来,然后你有一天要通过这个地址可以找到你1的朋友,就是这个意思

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

                 ✨指针变量存放的大小

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_18,color_FFFFFF,t_70,g_se,x_16

为什么会都是4呢?

不管是什么类型的指针,都是在创建指针变量,而指针变量是用来存放地址的
,指针变量的大小取决于一个地址存放的时候需要多大的空间 ,所以32位机器上的地址:32bit位,4byte,所以指针变量的大小是4字节,64位机器上的地址,64bit位,8byte,所以指针变量的大小是8字节

 

💘4 结构体

                ✨如果表达一般的 char int float什么的 可以表达,但是如果是复杂的对象呢?如果是书:有书名+作者+出版社+定价+书号,人:名字+年龄+性别+地址+电话什么的,在C语言中给了能够表达这些复杂对象的自定义类型的能力,自定义类型中有一种叫:结构体struct,结构体是把一些单一类型的组合到一起


练习:

知识已经懂了,但是还需要反复练习习题才好,推荐大家使用牛客平台练习,海量的题,可以从0基础来练习,牛客的好处就是可以从基础题层层递进,可以搜索相关的习题来练习,大家一起迈入刷题的世界吧!!

牛客网刷题登录链接

总结

本篇文章详细介绍了关于初学者应该知道的关于常见关键字,define有什么作用,应该如何使用?关于C语言中的一大难点,指针应该如何入手?还有关于复杂对象该如何定义?相信大家看了凡人本篇文章有了个大概轮廓,以后详细介绍会放到以后讲解,先让大家了解了解,如果觉得凡人写的还不错,希望三连,感谢大家观看!!!

 

 

  • 77
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 125
    评论
评论 125
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值