一、C语言基础:

  1.1、main函数是入口函数,用于进行link。

  1.2、.sln是解决方案的管理文件。

  1.3、int:32位、short:16位、long:32位、long long:64位。

  1.4、使用short会占用比int更多的资源:short的输出会以int的大小输出。

  1.5、宏的使用时很不安全的。

  1.6、常量名字的命名规则是:全大写。

  1.7、明示常量存在于:(<limits.h>、<float.h>)

  1.8、反汇编中的[] 表示取值的意思。

  1.9、auto:

    1、编译器默认的局部变量分配的方式。

    2、在栈区当中分配空间。

    3、全局变量无法使用。

  1.10、atatic:

    1、存储在程序的静态区:只会初始化一次。

    2、修饰全局变量:作用为文件当中,其他文件无法使用。

    3、可以修饰函数。

    4、控制作用域:有无限生命周期的局部变量。

  1.11、register:

    1、存储于寄存器:必须是单个寄存器能够接受的值,无法取得地址,因为CPU中没有地址。

    2、仅仅发出请求不一定成功。

    3、全局变量无法使用:会导致长期占用寄存器。

  1.11、生命周期:指的是当前地址存在的时间。

  1.12、作用域:是对于语法层次来说的。C语言当中一般以一个大括号{}表示一个作用域。

  1.13、变量名的本质是内存空间的一个别名,可以使用这个别名进行内存空间的访问。

  1.14、enum:

    1、定义常量值。

    2、和#define的区别:只是替换,无法调试、没有类型信息。

  1.15、struct:

    1、大小:进行数据对齐、如果是一个空的结构体的话,会出错(未定义的行为)。

    2、使用场景:柔性数组。

  1.16、union:

    1、大小:共享空间、只分配最大的空间。

    2、使用场景:判断大小端。

  1.17、void* :地址+大小 = 万能指针,他能够给我们提供一种数据抽象的能力。可用于任何的指针类型。

  1.18、C中的贪心算法:一个表达式会被逐一的扫描解析。

  1.19、链接(将外部的一些代码导入到当前文件中,才能完成程序的执行):

    1、编译器在将代码编译成汇编代码

    2、然后进行链接:通过链接器进行。

    3、静态链接、动态链接:

  1.20、编译器编译过程:预处理、编译、汇编器、链接。

  1.21、宏:

    1、在进行预处理的时候被展开。

    2、到编译阶段所有的宏已经被展开了。

    3、宏只是纯粹的做一个替换。

    4、宏是不存在作用域一说的,只要在宏定义之后的代码中使用都是可以的。

  1.22、预编译:

    1、预编译指令控制的是代码。

    2、错误提示预编译指令:#error、#warning。

    3、设置文件名及行号:#line。

    4、预编译指示字:#pragma、不同的C语言编译器对他的理解是不同,这是没有标准的、是不具备移植性(但是不影响程序的执行)、

      并非作用于代码,主要的作用是只是编译器来完成特使的指令、#pragrma message(这个是VS特有)、

1.23、数据对齐:

  1、#pragma pack()开始 -> #pragrma pack()结束,这是一对的。

  2、第一个括号中数据对齐的大小(数字1、2、4、8、16、32),如果不填的话就是默认值,默认值是4。

  3、总长度必须能够整除结构中的所有的对齐参数。

  4、对齐参数是:取pack和类型大小中小的那个。

C语言的一些基础的更多相关文章

  1. awk程序设计语言之-awk基础

    awk程序设计语言之-awk基础 http://man.linuxde.net/ 常用工具命令之awk命令 awk是一种编程语言,用于在Linux/Unix下对文本和数据处理.数据可以来自标准输入(s ...

  2. Groovy语言学习--语法基础(5)

    至此groovy语言学习-语法基础就结束了,新的工作已经安排下来,要干活了. 对groovy了解到一定程度之后就可以在java项目中对其进行引入了.为此新建了一个微型的项目,个人觉得千言万语不如代码实 ...

  3. Groovy语言学习--语法基础(1)

    2018年11月末,从上家公司离职后进入现在的公司.进入项目以来,发现项目中有很多groovy脚本,以前没接触过groovy,抽时间系统地学一下,也方便后期项目的开发和维护. groovy和java的 ...

  4. Unity 3D开发-C#脚本语言的一些基础用法

    Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线 ...

  5. C#语言和数据库基础

    第一章 第一个C#程序 Vs2012密钥 RBCXF-CVBGR-382MK-DFHJ4-C69G8 01..net和C#的区别 大概在2000年,微软推出了一种革命性的产品--.NET(战略) 目标 ...

  6. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  7. C语言内存地址基础

    来源:http://blog.jobbole.com/44845/ 从计算机内存的角度思考C语言中的一切东东,是挺有帮助的.我们可以把计算机内存想象成一个字节数组,内存中每一个地址表示 1 字节.比方 ...

  8. linu、C语言、计算机基础教程

    Linux操作系统入门教程:http://see.xidian.edu.cn/cpp/linux/ 鸟哥的linux私房菜:http://vbird.dic.ksu.edu.tw/ 计算机操作系统教程 ...

  9. c语言的一些基础知识

    c语言作为经典语言,这里不再多说了.咱从基础一起探讨吧! 一. 定义一个整型,如果作为局部变量,没有初始化的情况下,它是一个随机的值的,一般情况下输出会是0,但这个0是作为垃圾值的;而如果作为全局变量 ...

  10. c语言学习之基础知识点介绍(四):算术运算符和逗号表达式

    本节主要介绍c语言中运算符. 运算符主要分为四类: 1.算术运算符 加(+),减(-),乘(*),除(/),取余(%,两数相除,得到余数) 2.关系运算符 3.逻辑运算符 4.换位运算符 下面将依次介 ...

随机推荐

  1. 手机端rem如何适配_rem详解及使用方法

    什么是rem 在我看来,rem就是1rem单位就等于html节点fontsize的像素值.所以改变html节点的fontsize是最为关键的一步.根据手机宽度改变相对大小就可以实现自适应了,就不用什么 ...

  2. 纪念一下java学习之第一个get请求。

    环境,变量及工具: 1.java jdk1.8.X 2.tomcat 8.5.11 3. 环境变量: CATALINA_HOME: tomcat安装地址   JAVA_HOME:  JDK安装地址   ...

  3. [原创]HBase学习笔记(4)- 数据导入

    需要分别从Oracle和文本文件往HBase中导入数据,这里介绍几种数据导入方案. 1.使用importTSV导入HBase importTSV支持增量导入.新数据插入,已存在数据则修改. 1.1.首 ...

  4. 分解机(Factorization Machines)推荐算法原理

    对于分解机(Factorization Machines,FM)推荐算法原理,本来想自己单独写一篇的.但是看到peghoty写的FM不光简单易懂,而且排版也非常好,因此转载过来,自己就不再单独写FM了 ...

  5. unity3D插件开发——前篇

    Unity3D(以下简称Unity)是今年来非常流行的游戏开发引擎.他不仅有足够和unreal(虚幻)引擎媲美的渲染效果,足够多的平台输出,更为突出的就是Unity本身的编辑器.unity本身除了使用 ...

  6. Kubernetes使用cephfs作为后端存储

    这里使用了k8s自身的持久化卷存储机制:PV和PVC.各组件之间的关系参考下图: PV的Access Mode(访问模式) The access modes are: ReadWriteOnce – ...

  7. Python之路-Linux命令基础(4)

    作业一: 1)开启Linux系统前添加一块大小为15G的SCSI硬盘 2)开启系统,右击桌面,打开终端 3)为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大 ...

  8. 我是如何处理大并发量订单处理的 KafKa部署总结

    今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司需要它. 网上已经有很多怎么用和用到哪的 ...

  9. 性能测试培训: 监控CPU之python

    性能测试培训: 监控CPU之python 作为一名测试开发工程师,开发脚本是为了测试服务的,我们在手里没有性能监控工具的情况下,我们会自己来进行开发脚本完成监控任务.下面是python监控cpu '' ...

  10. Android中那些有你不知道的事

    在安卓开发中,总有那么一些看似简单,实则绊脚的难题,等你去探索,等你去解决,也许你已经遇见了解决了,也许你还没碰上,写下这篇总结,希望能帮助那行即将遇到的朋友,快速解决这些小问题! 一.activit ...