草庐IT

带你们偷瞄编程绕不开的C语言(三)

paper jie 2023-11-18 原文

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰内容专栏:这里是《C专栏》,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

🥴内容分享:本期会对C语言中的关键字,define定义常量和宏,指针与结构体进行初步的概括,各位看官姥爷快搬好小板凳做好叭。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)


目录

🙄前言

😮‍💨一 常见的关键字

🤪1.1 关键字的简单介绍

🤗1.2 关键字 typedef

🤑1.3 关键字 static

🧐二 #define定义常量与宏

🥺三 指针

🥴3.1 内存

 🥵3.2 指针的大小

🤯四 结构体

🤠总结


🙄前言

在上期文章里,对选择语句,循环语句,函数,数组,操作符进行了一些概括,介绍了它们的概念和基本使用方法(上期文章:http://t.csdn.cn/R6yT0),在这篇文章里我们紧接着对其他内容进行讲解。

😮‍💨一 常见的关键字

🤪1.1 关键字的简单介绍

C语言中提供了丰富的关键字,这些关键字都是语言本身自己设定好的,不可以用户自己创造关键字。

在这里对这些关键字简单介绍一下叭。auto是让局部变量自动创建自动销毁, 不过一般不使用,因为编译器会默认加上它。break,case,default,都是在switch中使用的关键字。char,int,float,doudle都是数据类型。const是修饰常变量。continue跳过本次循环。do与while搭配组成do……while语句。else与if搭配组成if……else。enum是枚举类型。extern声明外部符号。fegister是建议cup把某些放在寄存器处理。return是返回某值。sigend有符号的,unsigend无符号的。sizeof计算大小,单位字节。static修饰变量与函数。typedef类型重定义。void空返回值。(有些常见的就不介绍了)

🤗1.2 关键字 typedef

typedef是类型定义,可以理解为类型重定义。举个例子:一个人原名叫张三三,他觉得这个名字长了或者不好听,这时他就用typedef改名为张三,typedef在这里起的就是重新取名字的作用。      代码演示:

🤑1.3 关键字 static

static是用来修饰变量和函数的:1修饰局部变量,把修饰后的变量称为静态局部变量。 2修饰全局变量,修饰后称为静态全局变量。 3修饰函数,把修饰后称为静态函数。

修饰局部变量的作用是改变局部变量的存储位置,使它的生命周期变长,直到整个程序结束才销毁。  修饰全局变量是改变全局变量的外部链接属性,变为内部链接属性,只能在自己所在的源文件中使用。  修饰函数的作用和修饰全局变量十分相似,都是把外部属性改变为内部属性。如果大家不太清楚或者想具体了解可以看这篇《震惊!竟然有人如此解释字符串》http://t.csdn.cn/aKMqP

🧐二 #define定义常量与宏

这一部分我认为比较简单,就直接上代码叭。

🥺三 指针

🥴3.1 内存

到了大家又爱又恨的指针环节了,其实指针并没有想象的那么难,只要理解得当它还是比较好上手的,废话不多说我们开始正文叭。说到指针我们就必须得提起内存了,指针就是用来访问内存的内存是电脑上特别重要的储存器,程序的运行都是在内存中进行的。为了有效的使用内存,就把内存分为一个一个小的内存单元,大小为一个字节。又为了有效的访问到内存的每个单元,就给它们进行了编号,这些编号叫做内存单元的地址。 

接下来我们就由画图来展示吧:

 

地址储存,需要定义指针变量。

指针的使用案例:

 🥵3.2 指针的大小

指针的大小取决于地址的大小,32位平台上是32位bit(4个字节),64位平台上是64位bit(8个字节)

 代码求指针变量大小:这是在32位平台下

🤯四 结构体

结构体在C语言中有举足轻重的地位,结构体使C语言有能力描述复杂对象,可以自己创建需要的类型,比如描述一个人:名字,性别,年龄,身高这几项信息。这里只能使用结构体来描述了。例如:

结构体的初始化:可以用三种符号作为访问操作符1. 2 pa* 3 -> 代码展示:


🤠总结

到这里,咱们对于C语言已经有了一个全貌的了解了吧(偷瞄够了叭),我们系统的概括了一下C语言中所有的基础知识,只要看完这几篇文章,想必大家对于C语言的代码大概能看懂了,简单的代码也可以写几行了,但是这些对于学习C语言来说还远远不够,希望大家可以在上面继续深耕,早日成为大牛,笔者对于一句话就是特别适合描述我们学习编程:键盘敲的烂,年薪必百万!大家务必多敲代码呀!好啦到这就该告一段落了,喜欢的看官姥爷给个三连哦。

 

 

 

 

有关带你们偷瞄编程绕不开的C语言(三)的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  5. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  6. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  7. ruby - 如何以编程方式删除实例上的 "singleton information"以使其编码(marshal)? - 2

    我创建了一个由于“在运行时执行的单例元类定义”而无法编码的对象(这段代码的描述是否正确?)。这是通过以下代码执行的:#defineclassXthatmyusesingletonclassmetaprogrammingfeatures#throughcallofmethod:break_marshalling!classXdefbreak_marshalling!meta_class=class我该怎么做才能使对象编码正确?是否可以从对象instance_of_x的classX中“移除”单例组件?我真的需要一个建议,因为我们的一些对象需要通过Marshal.dump序列化机制进行缓存。

  8. Ruby 元编程问题 - 2

    我正在查看Ruby日志记录库Logging.logger方法并从sourceatgithub提出问题与这段代码有关:logger=::Logging::Logger.new(name)logger.add_appendersappenderlogger.additive=falseclass我知道类 最佳答案 这实际上删除了方法(当它实际被执行时)。这是确保close不会被调用两次的保障措施。看起来好像有嵌套的“class 关于Ruby元编程问题,我们在StackOverflow上找到一

  9. ruby - Paperclip:以编程方式分配图像并设置其名称 - 2

    使用Paperclip,我想从这样的URL抓取图像:require'open-uri'user.photo=open(url)问题是我最后得到一个像“open-uri20110915-4852-1o7k5uw”这样的文件名。有什么方法可以更改user.photo上的文件名?作为一个额外的变化,Paperclip将我的文件存储在S3上,所以如果我可以在初始分配中设置我想要的文件名就更好了,这样图像就会上传到正确的S3key。像这样:user.photo=open(url),:filename=>URI.parse(url).path 最佳答案

  10. ruby - 如何以编程方式检查证书是否已被吊销? - 2

    我正在开发一个xcode自动构建系统。在执行一些预构建验证时,我想检查指定的证书文件是否已被撤销。我了解securityverify-cert验证其他证书属性但不验证吊销。我如何检查撤销?我正在用Ruby编写构建系统,但我对任何语言的想法都持开放态度。我阅读了这个答案(Openssl-Howtocheckifacertificateisrevokedornot),但指向底部的链接(DoesOpenSSLautomaticallyhandleCRLs(CertificateRevocationLists)now?)进入的Material对我的目的来说有点过于复杂(用户上传已撤销的证书是一

随机推荐