1.指针:在程序中定义了一个变量,在进行编译时就会给该变量再内存中分配一个地址,通过访问这个地址可以找到所需变量,这个变量的地址成为该变量的指针。指针看作是内存中的一个地址,多数情况下,这个地址是内存中另一个变量的位置。一个变量的地址成为该变量的指针。【指针是变量在内存中的地址】

2.C语言中提供了地址运算符&来标识变量的地址,*是指针运算符,表示该变量是一个指针变量。**表示指向指针变量的指针变量。

3.在低级语言的汇编语言中都是直接通过地址来访问内存单元,在高级语言中一般使用变量名来访问内存单元,但是C语言作为高级语言提供了通过地址来访问内存单元的方式。

4.指针变量也可以指向一个函数。一个函数在编译时被分配一个入口地址,该入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。返回指针值的函数简称为指针函数。

5.预处理功能是C语言特有的功能。预处理程序包含许多有用的功能,如宏定义、条件编译等,使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。

6.通过内存组织方式可以看到,堆用来存放动态分配内存空间,而栈用来存放局部数据对象、函数的参数以及调用函数和被调用函数的联系。在C程序中是用malloc和free函数来从堆中动态分配和释放内存。

7.GCC:是由 GNU 开发的编程语言编译器。不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,GCC也是跨平台交叉编译的首选,它不仅支持Intel的x86系列,同时也支持MIPS,ARM,PowerPC,SPARC等等处理器。可以这么说,即使GCC不是世界上效率最高的编译器,它也一定是世界上最全面的编译器,尤其适合在嵌入式领域的开发编译。

8.Makefile:make命令是GNU的工程化编译工具,它用于编译大量互相关联的源代码,使用它可以实现项目的工程化管理,提高开发效率。Makefile的作用就是在执行make命令的时候指定编译和链接的规则,包括源代码文件之间的链接关系、依赖关系等。Makefile文件就像shell脚本一样,在其中也可以执行操作系统的命令。

9.java是完全面向对象的,c是面向过程的,c++继承了c,但是也加入了面向对象的方法。Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。C 和 C++不支持字符串变量,在 C 和 C++程序中使用“Null”终止符代表字符串的结束。

10.在C语言中,使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起。

11.typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

12.signed和unsigned用于修饰整数类型(包括char,从ANSI C89标准开始支持)。signed表示有符号,unsigned表示无符号。unsigned和signed在一种类型下,unsigned表示在这个范围大小的整数,signed一般都是在这个范围内的从负到正。

13.->符号是用于指向结构体子数据的指针,用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。

14.链表是相同类型的若干个结构体用其自身携带的指针按照一定顺序串联成的一个链。举个简单例子进行类比:struct node{ int a; struct node *next; };把这个链表节点的结构体struct node看作是人,结构体内的next指针看作是人的一只手,这只手只能用于指向人(别人或自己)。如果有多个人排成一排,每个人都举起右手指向右边的人,就形成一个人组成的链表。

15.汇编语言:是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,且占用内存少,执行速度快,是高效的程序设计语言。由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,增加了编写和调试的复杂性。嵌入式系统的底层驱动、计算机的BIOS还是要用汇编语言实现。

16.C最主是对性能要求高,逻辑不复杂的相关开发。C++主要是对性能要求高和逻辑复杂的游戏开发。C/C++的规则比较宽泛,可以用来进行一些更贴近硬件的开发。

17.符号::是作用于限定符号,在c++中标识作用域和所属关系,是运算符中等级最高的。用法:在类外部声明成员函数,调用全局函数,调用类的静态方法。

18.符号:=意思是定义为或者是替换。

19.中断:在网络中起着通信网络作用,以协调系统对各种外部事件的响应和处理。

20.volatile 关键字作用:编译时不优化,执行时不缓存,每次需从内存中读出(保证内存的可见性)。 使用场景:用于多线程或多CPU编程。

21.extern关键字,标识变量和函数定义在别的文件中。static关键字,标识只用于本文件的函数。

22.取址运算可以直接计算出C语言中任何一个变量的地址。地址就是数据元素在内存中的位置标示。可以用无符号整数来保存一个变量的地址。

23.指针用来指向某个内存地址。C语言指针也是有类型的,不同类型的指针,只能标示不同类型数据的内存地址,使用多重指针来保存指针数据的地址。

24.字符串等价于字符数据,字符指针可以保存字符数据的首个元素的地址,进而访问字符数据的每个元素。

C语言相关知识的更多相关文章

  1. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  2. Ubuntu 字体修改以及字体的相关知识 分类: ubuntu 2014-06-19 21:46 81人阅读 评论(0) 收藏

    Ubuntu chrome 字体修改 打开任意一张含有输入框的网页,比如Google首页,然后右键点击"搜索框"会拉出一个菜单,我们这样选: 拼音检查选项==>语言设置==& ...

  3. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  4. 引用 字库编码Unicode相关知识

    引用 weifeng.shen 的 字库编码Unicode相关知识 1.      各地编码 首先说明一下现在常用的一些编码方案: 1.         在中国,大陆最常用的就是GBK18030编码, ...

  5. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  6. linux 创建守护进程的相关知识

    linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关 ...

  7. X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编

    注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...

  8. 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)

    这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下     Ruby 这个就不用多说了 RVM 用于帮你安装Rub ...

  9. C语言的知识与能力的自评

    1.我希望将来上班的地方是自己所感兴趣的,正在寻找自己感兴趣的,并且正在普及IT行业的相关知识. 2.我认为学习就是一个自我成长和自我提升以及认识世界的方法,学习的作用是可以不断的提升对这个世界的认识 ...

随机推荐

  1. GO学习-(28) Go语言操作influxDB

    Go语言操作influxDB 本文介绍了influxDB时序数据库及Go语言操作influxDB. InfluxDB是一个开源分布式时序.事件和指标数据库.使用Go语言编写,无需外部依赖.其设计目标是 ...

  2. mysql查看表的字段与含义

    查看表的字段与含义 select column_name,column_comment from information_schema.`COLUMNS` where table_Schema='lo ...

  3. springcloud中 getway中的断言配置: Predicate 9中配置过程, getway的 filters实现限流功能:

    https://www.cnblogs.com/grasp/p/11506426.html 这里引用别人的,,且试验过 ,没问题 server: port: 9527 spring: applicat ...

  4. 【NX二次开发】移动WCS坐标系

    说明:移动WCS坐标系 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *p ...

  5. 【模板】 RMQ求区间最值

    RMQ RMQ简单来说就是求区间的最大值(最小值) 核心算法:动态规划 RMQ(以下以求最大值为例) F[i,j]表示 从 i 开始 到i+2j -1这个区间中的最大值 状态转移方程 F[i,j]=m ...

  6. 剑指0ffer59.滑动窗口的最大值

    给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值. 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] ...

  7. SqlServer的order by问题

    如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中.这是我昨天写sql的时候遇到的,主要是因为最近在做一个数据库的迁移与更换,原来MySQL的数据库全 ...

  8. MIT6.828 Lab2 内存管理

    Lab2 0. 任务介绍 你将编写一个内存管理代码.主要分为两大部分.分别对物理内存和虚拟内存的管理. 对于物理内存,每次分配内存分配器会为你分配4096bytes.也称为一个页(在大部分操作系统中一 ...

  9. Golang通过结构体解析和封装XML

    Golang解析和封装XML 解析XML成结构体Demo package main import ( "encoding/xml" "fmt" ) //我们通过 ...

  10. excel VBA正则匹配单元格符号,并按符号把单元格拆分行(这里是按第一列分行,分行是从活动单元格的行开始,分行前需要选择所有需要填充内容的列,否则需要后期手动填充)

    Sub W()   ' MsgBox "行数:" & Selection.Rows.Count    Dim rows_count As Integer    Dim ro ...