C语言再学习part1-宏观认识C语言】的更多相关文章

天下莫柔弱于水,而攻坚强者莫之能胜,以其无以易之也.弱之胜强,柔之胜刚,天下莫不知行,莫能行. —老子 我近来每天都在坚持读书,所以我一直沉浸于古人的智慧中无法自拔.所以如果我这篇博文被你有幸看到,那上面的话便赠予君子了. 言归正传,这篇博文是C语言再学习系列的第一篇.虽然我已经学习了C语言两年多之久,但是我觉得自己并没有学明白C语言,所以我利用寒假时间再次学习了一遍,并且我将我学习到的东西记录下来.学习的过程虽然苦涩寂寞,但是自己能看到自己一步一步对C语言有新的认识也是值得了. 此篇博文主题是…
迷阳迷阳,无伤吾行.无行郗曲,无伤吾足.—庄子 C语言词汇: 标识符 在程序中的变量名.函数名.标号等等成为标识符.其中标识符相在C中只能是字母A~Z,a~z,数字0~9,下划线(_)组成的字符串,并且开头必须是字母或者下划线.例如a,BOOK_1等等. 关键字 它是指由C语言中具有特定意义的字符串,也称作保留字.有以下几类,类型说明符,例如int,double等.语句定义符 例如if else.预处理命令字 例如include. 运算符 它是指加减乘除之类的. 分隔符 通常有逗号或者空格.逗号…
昨天看Q3的代码,看到有个_INTSAIZEOF的宏,着实晕了一阵.一番google后,终于明白,这个宏的作用是求出变量占用内存空间的大小,先看看_INTSAIZEOF的定义吧: #define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) (ANSI C标准下,_INTSAIZEOF宏定义在stdarg.h中,Q3中定义在bg_lib.h中:bg_lib.h -- standard C library…
君子远庖厨,万物皆备于我.—孟子 这篇文章主要总结程序的主要要素,以及程序的构成是什么样子的.最后说说我学到的一种奇特的表示算法的方式—伪代码. 让我们开始吧! 一个程序应该包括以下两个主要要素: 1.对数据的描述.在程序中要指定数据的类型和数据的组织形式,即为数据结构. 2.对操作的描述.即为操作步骤,也就是算法. 那么程序是什么呢? 程序=算法+数据结构+程序设计方法+语言工具和环境[1] 最后来说说被忽略的伪代码.伪代码不同于汇编语言中的伪指令. 伪代码是用介于自然语言和计算机语言之间的文…
前不久在阅读Quake3源代码的时候,看到一个陌生的函数:setjmp,一番google和查询后,觉得有必要针对setjmp和longjmp这对函数写一篇blog,总结一下. setjmp和longjmp是C语言独有的,只有将它们结合起来使用,才能达到程序控制流有效转移的目的,按照程序员的预先设计的意图,去实现对程序中可能出现的异常进行集中处理. 先来看一下这两个函数的定义吧: setjmp和longjmp的函数原型在setjmp.h中 函数原型: int setjmp(jmp_buf envb…
目录: 1.编译基础 2.c语言关键字 3.c语言数据类型 4.二进制/8进制/16进制 5.计算机内存数值存储方式:sizeof/原码/反码/补码 6.c语言中的字符和字符串 7.c语言中的数组和字符串(字符数组和字符串) 7.1 数组的逆置,冒泡排序(含优化) 编译基础: C代码编译成可执行程序经过4步: 1)预处理:宏定义展开.头文件展开.条件编译等,同时将代码中的注释删除,这里并不会检查语法 2)编译:检查语法,将预处理后文件编译生成汇编文件 3)汇编:将汇编文件生成目标文件(二进制文件…
MQTT 源码分析,搜索了一下发现网络上讲的很少,多是逍遥子的那几篇. 参看:逍遥子_mosquitto源码分析系列 参看:MQTT libmosquitto源码分析 参看:Mosquitto学习笔记 一.目录结构首先我们还是来看一下 mosquitto-1.4.14 的源码目录结构 我们主要关注 client.lib.src 这三个目录.其中 src 和 lib 目录下主要放置 mosquitto 的实现代码以及部分底层与网络相关的操作,client 目录主要为两个客户端程序的实现源码. 我们…
继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 一.SDL 简介 参看:WIKI -- Simple DirectMedia Layer 参看:最简单的视音频播放示例9:SDL2播放PCM 参看:SDL介绍 SDL (Simple DirectMedia Layer)是一套开源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux.Windows.Mac OS等)的应用软…
C语言课程学习的总结 学习C程序这门课一年了,这是我们学的第一门专业课.在大学里,C语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程.所以作为我这个计算机专业的学生来说当然十分重要老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的. 我对C语言中有许多重要知识进行总结: 1.一些基本的函数和基本数据类型的应用.其中,基本数据类型分为整型.浮点型.字符型.枚举…
计算机技术发展很快,而且越来越快,结果也是越来越复杂,那么我们到底怎么搞定复杂性并重用代码? 很明显,这是个大难题.一开始我们要解决计算问题,发展了基本的编程语言. 很快,编程语言不能满足需求,我们需要重用一些代码,算法,我们把这些重用部分写成库. 随着库越积越多,需要组织这些库了,这就形成了框架. 这就是我们今天面对的问题,.net,Java,甚至JS,都形成了框架,各种各样的框架,从解决问题,到带来问题. 为什么这么说?因为如今的框架太庞大了,除了JS,其它的动辄几十个名字空间,成百上千的类…
上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像亚洲人和非洲人,大家都有人类的结构:2只手.2只脚.1个头,只是他们外表不太一样,比如肤色.脸型.因此,你掌握好了一门高级语言,再去学习其他高级语言,那是相当快的.而且,很多其他高级语言,比如后面要学习的Objective-C,都是基于C语言.从C语言衍生出来的,好好学习C语言吧,绝对不吃亏. 一.…
标题说的是go语言的学习,因为我也没做过开发 文章要解决的仅仅是一个问题 当你使用go get 无论如何get不到所需的包的问题 第一步就是下载goland 新手极其推荐goland,因为直接使用gland几乎没有挫败感,使用其他工具可能要折腾好多天 goland只需要半个小时即可 不要听其他人说最好不要使用ide,新手最重要的是快速流畅的配置好所需要的运行环境 曾经折腾vs code go 以及go get 的经历我至今不愿意再想起,简直是一场噩梦 第二步就是new project的时候使用下…
R语言基础学习——D02 20190423内容纲要: 1.前言 2.向量操作 (1)常规操作 (2)不定长向量计算 (3)序列 (4)向量的删除与保留 3.列表详解 (1)列表的索引 (2)列表得元素属性 (3)更改列表元素 (4)删除列表元素 (5)合并两个列表 (6)将列表转换为向量 4.推荐 1.前言 怕什么真理无穷,进一寸有进一寸的欢喜. 先随便玩点什么? >ls() #ls查看当前创建的变量,没有.那我们创建几个变量 >data <- c(,,,) >string <…
想进行Linux系统开发已经很久了,一直没有付诸实践.今日终于开始学习Linux下的C语言编程,研究一天,终于大概弄明白了Linux系统进程管理的一些基本概念和编程方法,总结下来以方便大家学习和自己实践. 进程系统 Linux是个多任务多用户的操作系统,系统直接管理的每个任务的最小单位,就是进程(process).每个进程都有一个惟一的标识符pid,不同的进程pid不相同,在Shell下输入ps -A,可以显示当前的所有进程.一个进程不代表一个应用程序(application),因为一个应用程序…
获奖感言和C语言的学习心得 自我介绍: 大家好,我的名字叫袁忠,我来自湖南,今年快19岁了,现在是大学一年级,我平时喜欢跑步.打羽毛球,我也喜欢学算法与数学,以及喜欢看一些与计算机有关的书籍,每次我学它们时,我都比较兴奋,都会开开心心去学,我的思维也比较开放,例如:每次我写算法时,我都会想如何简化自己的代码,怎样可以使自己的代码变得更加简单,学数学也一样,我不喜欢固定自己的思维,每次老师给我们讲题目时,我都会想是否还有更简单的方法,最好是联系以前学过的东西,让复杂的问题简单化. 在这大学四年中,…
c语言中关于操作符部分的学习,可以主要分为两个部分:操作符和表达式. 这里首先是列举各种操作符,在C语言中,一般主要的操作符有这么几种:算数操作符,移位操作符,位操作符,赋值操作符,单目运算符,关系操作符,逻辑操作符,条件操作符,逗号表达式以及比较特殊的几个操作符. 算数操作符 算数操作符,主要是:+ , -,  *,  /, % 这些都是比较常见的,不光是在C语言中学习到,事实上从小我们学习数学都常用到他们,所以这里没什么多说的,就是有几点注意事项: 除了取模运算,也就是取余数的%操作符,其他…
为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看:cuda入门 参看:CUDA知识普及 参看:CUDA学习笔记 CUDA (Compute Unified Device Architecture,统一计算设备架构),是显卡厂商 NVIDIA 在2007年推出的并行计算平台和编程模型.它利用图形处理器 (GPU) 能力,实现计算性能的显著提高.CUD…
R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr包为ggplot图添加p-value以及显著性标记,本文将详细介绍.利用数据集ToothGrowth进行演示 #先加载包 library(ggpubr) #加载数据集ToothGrowth data("ToothGrowth") head(ToothGrowth) ## len supp…
霍顿 (Ivor Horton) (作者), 杨浩 (译者) <C语言入门经典(第4版)>的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识,即可通过<C语言入门经典(第4版)>从头开始编写自己的C程序.研读<C语言入门经典(第4版)>,你就可以成为一位称职的C语言程序员.从许多方面来说,C语言都是学习程序设计的理想起步语言.C语言很简洁,因此无须学习大量的语法,就能够开始编写真正的应用程序.除了简明易学外,它还是一种功能非…
霍尔顿 (Ivor Horton) (作者), 杨浩 (译者) 下载地址:点我 C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Linux操作系统及其很多功能的基础.学习C语言可以给编程职业生涯提供牢固的基础,也有助于更好地理解更为现代的语言(如Java). <C语言入门经典(第5版)>…
pythonic的标记语言 之前总结过一篇关于小数据存储文件大比拼,当时着重介绍了json,因为它在各类编程语言的通用性较强.但今天,我想给大家介绍一款更加适合pythoner使用的语言Yaml. YAML是一个可读性高,用来表达数据序列化的格式.YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:&qu…
R语言基础学习——D03 20190423内容纲要: 1.导入数据 (1)从键盘输入 (2)从文本文件导入 (3)从excel文件导入 2.用户自定义函数   3.R访问MySQL数据库 (1)安装RODBC包 (2)下载connector ODBC (3)添加驱动 4.推荐 1 导入数据 导入数据的方式有很多种,比如键盘输入,比如导入文本文件,比如excel,比如,算了别比如了.直接上图…
Golang 汇编asm语言基础学习 一.CPU 基础知识 cpu 内部结构 cpu 内部主要是由寄存器.控制器.运算器和时钟四个部分组成. 寄存器:用来暂时存放指令.数据等对象.它是一个更快的内存.cpu 内部一般有 20 - 100 个寄存器.不同类型的cpu,它内部的寄存器数量.种类以及寄存器存储的数值范围都不相同. 控制器:它负责把内存上的指令.数据等读入寄存器,根据指令执行的结果来控制整个计算机. 运算器:它负责运算从内存读入寄存器的数据. 时钟:它负责发出 cpu 开始计时的时钟信号…
指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较费解的东西做一下讲解,希望能达到以下三个目的 1.通过写这些东西,把我脑袋中关于C的模糊的知识清晰化.2.给初转C的同事们一点提示和帮助.3.也希望各位前辈检查一下文档中是否有理解偏差的地方.1 指针的概念分解      指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个…
C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needle);[2]头文件#include <string.h>[3]函数功能搜索"子串"在"指定字符串"中第一次出现的位置{4}参数说明haystack-->被查找的目标字符串"父串"needle-->要查找的字符串对象"…
这段时间一直在看Go语言,6月3日Apple发布了swift发现里面竟然也有许多Go语言的影子,截至现在每天都在感觉到Go语言的强大.确实值得一学 今天在这里给园友们推荐一些Go语言的学习资料 网站 Go 中文社区 Go官方网站 http://golang.org/ 需FQGo中文官网 http://golang-china.org/ 中文论坛(测试中…) http://bbs.golang-china.org/ 中文用户讨论组(邮件) https://groups.google.com/gro…
#js再学习笔记 ##基本 1.js严格区分大小写   2.js末尾的分号可加,也可不加   3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var name;` ------就是已定义未赋值或者未定义而使用**针对变量来说**,占据一个变量的位置而不使用. - boolean-------布尔类型 - string: `var name="zhangsan"; var englishname='tom';` -----字符串类型,单…
对比spring,django,再学习express就有很多共通的地方啦... 看的书是一本小书,<express in action>,排版比较好. 昨天开始看,看了快四分之一啦... 练习代码: var express = require("express"); var http = require("http"); var path = require("path"); var logger = require("mo…
ICE:Slice语言(一)-编译 Introduce简介 Slice(Specification language for ice)是分离对象和对象的实现的基础的抽象机制.Slice在客户端和服务器端之间建立契约,描述应用程序使用的类型对象的接口.这样的描述是独立于实现功能的语言的,所以服务器和客户端的实现所使用的语言没有任何关系. 编译器将语言无关的定义翻译为特定语言的类型定义和API.这些翻译后的类型定义和API将被使用在应用程序的功能中,以及用来与Ice交互.这种从一种语言无关的定义到各…
20141023-Android再学习 Intent对象的基本概念 Intent是Android应用程序组件之一 Intent对象在Android系统中表示一种意图 Intent当中最重要的内容是action与data Intent对象的基本使用方法 使用Intent在Activity之间传递数据的方法 在Activity之间可以通过Intent对象传递数据 使用putExtra()系列方法向Intent对象当中存储数据 使用getXXXExtra()系列方法从Intent对象当中取出数据 回顾…