导读:程序要完成高级功能,首先要能够做到基本的加减乘除.本章从程序中变量的概念开始,结合之前学的输出函数和新介绍的输入函数制作简单人机交互程序,然后讲解最基础的加减法运算,自制简单计算器程序练手. 5.1 变量 5.1.1 变量声明定义与赋值表达式 上一章讲了数据类型,数据类型要和变量结合在一起才能够在C语言程序中体现出它们的作用,一般的变量是这样定义的: 数据类型 变量名; 变量名可以是26个字母中的任意一个,也可以是非C语言关键词的单词或自定义字母组合,也可以加下划线等等,我们就先用简单字母…
5.1.4 再来一个C库函数getchar吸收回车键 回车键也是一个字符,在使用scanf的时候,输入完毕要按下回车键,这时候回车键也会被输入到stdin流中,会搞乱我们的程序. 注意:stdin是输入流,stdout是输出流,这两个流就是在内存中流进流出的数据,根据流向不同命名也不同. 比如以下代码执行后, #include <stdio.h> void main() { int b; char f; printf("please input int:"); scanf(…
5.3  挑几个运算符来讲 常用的运算符除了加减乘除(+-*/)外,还有如下: 注意:以下运算符之间用逗号隔开,C语言中也有逗号运算符,这里不讲逗号运算符. 1. 赋值运算符 =,+=,*= 2. 一元运算符 ++, -- 3. 相等运算符 ==,!=  ,关系运算符 < ,>,<=,>= 4. 条件运算符 ?: 6. 位运算符 &, ^, |  ,! 逻辑运算符 &&, ||,  移位运算符 >>, <<  5.3.1 赋值运算符…
5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换十进制和二进制,可以借用windows的计算器来辅助. 图5.11  228的十进制和二进制表现 把 11100100 整体往右边挪动一位,就会变为01110010.如果觉得不好理解?请这么想,有一条火车轨道,轨道只有八节,一列无限长的火车在这八节轨道上来回移动,如图5.12所示, 图5.12  想…
  导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型.数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了.本章从二进制的基本概念开始,然后介绍机器语言通用的计算单位字节,最后再介绍C语言中基本的数据类型及其基本概念. 4.1 二进制.字节 计算机,电子信息专业类的大学课程,肯定会有讲解二进制与十进制转换的课程,本节为了篇幅小一点,只提供windows计算器中进制转换工具的使用方法,希望读者谅解. 4.1.1 二进制 机器之间沟通用的…
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语句 翻回第一章,当时为了讲解计算机程序,举了一个打酱油的例子: 第一种做法:首先要准备好100块钱,然后出门要穿好衣服鞋袜,出门到便利店,拿到酱油付完钱,店家找钱,返回家中. 可以用更加精细的描述这个行为: 准备100块钱,或许要翻箱倒柜,直到找到100块钱才可以出门,这段时间发生的事情可以用如下语…
第三章 编写第一个C语言程序 导读:一般学一门计算机语言的第一堂上机课(“上机”顾名思义,上了计算机),就是往屏幕输出“hello world”,本章也不例外. 1.1 Hello,World! 这一节和读者一起来编写第一段C语言程序,过程详细到令人发指. 1.1.1 创建C语言源码文件 打开 Dev C++,在上方菜单栏中选择“文件 --> 新建 --> 源代码”,如图3.1, 图3.1  创建源代码文件 1.1.2 输入一段代码 用键盘输入以下代码,先输入,等会再分析: #include…
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言程序进行比较,说明作为一个C语言程序员需要具备的基本理论知识,本章末端简单的描述windows中一个计算器程序是如何工作的. 1.1 什么是计算机程序 从字面上理解,程序就是完成一件事所需要进行的步骤,举个生活的例子,买酱油!需要哪些步骤: 第一种做法:首先要准备好100块钱,然后出门要穿好衣服鞋袜…
2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编…
上一节中鸡啄米讲了定时器Timer的用法,本节介绍下文件操作类CFile类的使用. CFile类概述 如果你学过C语言,应该知道文件操作使用的是文件指针,通过文件指针实现对它指向的文件的各种操作.这些文件操作函数中有的最终还是调用了操作系统的API函数或者处理过程与之类似,例如在Windows系统中,fread函数就调用了API函数ReadFile. Windows系统的API函数除了ReadFile,还有CreateFile.WriteFile等函数.而MFC基于面向对象的思想,将这些Wind…
目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       ROLL BACK处理... 2 12.2.3       SAVEPOINT和ROLL BACK TO SAVEPOINT. 3 12.2.4       SET TRANSACTION.. 3 试验:冻结视图... 4 12.2.5       SET CONSTRAINTS. 5 12.3    …
目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2.3       执行存储过程... 3 11.2.4       安全... 3 试验:访问过程... 3 11.2.5       参数... 5 11.2.6       局域声明... 12 试验:AUTHID DEFINER. 13 工作原理... 14 试验:AUTHID CURRENT…
第五章 循环 5.2 while循环 1.while循环的语法如下: while(循环继续条件){ //循环体 语句(组); } 2.程序:提示用户为两个个位数相加的问题给出答案 package com.chapter5; import java.util.Scanner; public class RepeatAdditionQuiz { /** * 提示用户为两个个位数相加的问题给出答案 */ public static void main(String[] args) { int numb…
知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如Trondheim的hammer dance). 鉴于这一教程的目的在于使人尽量快速入门Python, 而任何不熟悉的词汇都会加上不必要的负担. 于是最终决定不拘泥于与原例程的"形似", 而采取在例程中使用更为国人熟知的词汇了. 中文代码示例Python入门教程 5.1 列表详述_哔哩哔哩…
第五章 字典和结构化数据 创建数组 格式:myCat = {'size':'fat','color':'gray',disposition':'loud'} 对字典的操作 通过[ ] 访问字典的值 [ ] 中是字典的键,从而得到对应字典中的值. keys(),values()和 items()方法 keys()返回 dict_keys 类型的数据,格式为 dict_keys(['color','age' ])values() 返回 dict_values 类型的数据.items() 返回 dic…
点击阅读原文 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 1. 源程序编译        2. Makefile的编写        3. 程序库的链接        4. 程序的调试        5. 头文件和系统求助        6. 源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.        假设我们有下面一个非常简单的源程序(hello…
第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关键的桥接作用.本章主要先从C语言编译的全过程开始分析,然后介绍常用的编译器工具,最后介绍本系列博客使用的免费开发软件Dev-C++安装过程. 1.1 C语言编译过程 C语言的代码直观的看来就是文本字符,这些文本字符要让机器能够识别并执行其中的指令,需要有个软件来转换,这个软件就是编译器(注意:有人可…
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; /* int[5]数组 */ ; i <; i++) /* 为数组元素赋值 */ v[i] = i ; ; i<; i++) /* 显示元素的值 */ printf("v[%d] = %d\n", i, v[i]); ; } 练习5-2 /* 依次把1.2.3.4.5 赋值给数…
排序算法一直是c语言重点,各个算法适应不用的环境,同时,在面试时,排序算法也是经常被问到的.今天我们介绍下快速排序,简称就是快排. 1.快速排序思想: 快排使用 分治法 (Divide and conquer)策略,将一个序列分为两个子序列.(快排算法中使用到了递归,对递归不太熟的,可以参考我前一篇文章).具体步骤如下: ① 从数列中挑出一个元素,称为"基准"(Pivot): ② 重新排序数列,所有元素比基准小的摆放在最前面,所有元素比基准值大的放在基准的后面(相同的数可以放在任意一边…
۞ 外部函数与内部函数 前面我们讲解了关于函数的调用都是针对同一个源文件中其他函数进行调用的,而在有些情况下,函数也可以对另外一个源文件中的函数进行调用.当一个程序由多个源文件组成时,根据函数是否能被其他源文件调用,可以将函数分为内部函数和外部函数两种类型.   出于大家可能不了解,我就画了一个程序运行的简图.大家可能会很奇怪,怎么会有多个源文件,一般我们都是只创建一个源文件,然后在里面写代码的.事实上我们可以创建多个源文件,用来把各个功能模块区分,所以我们是可以在一个源文件中调用另一个源文件中…
☆ 函数 在前面我们已经讲过了一些简单的函数,如程序的主函数main().标准输出函数printf().在C语言中,大多数功能都是依靠函数来实现的.But,你知道什么是函数吗?我猜你肯定不知道. 那么今天我们来仔细的讲解一下什么是函数,函数的定义.内部函数与外部函数等相关知识.   ☆ 函数的定义 假设有一个射击游戏程序,程序在运行过程中,要不断地发射子弹打死怪物.Biu!Biu!Biu! 假设发射子弹的代码有100行,如果说我每射击一次就要写这100行代码一次,那么可能现在的程序员哥哥都已经累…
前面讲了很多Go 语言的基础知识,包括go环境的安装,go语言的语法等,感兴趣的朋友可以先看看之前的文章.https://www.cnblogs.com/zhangweizhong/category/1275863.html. 今天GO语言中的面向对象. GO语言中的面向对象 其实GO并不是一个纯面向对象编程语言.它没有提供类(class)这个关键字,只提供了结构体(struct)类型. java或者C# 里面,结构体(struct)是不能有成员函数的.然而,Go语言中的结构体(struct)可…
查看文档 首先先分享一个可以在本地就能查看文档的骚操作(linux系统) 1.打开命令行终端,输入godoc -http=:8000,如果想后台运行在后面加个& 2.然后打开浏览器,输入网址:localhost:8000 就可以愉快地看文档了 go语言是个什么东西我想不用我介绍了---大家百度吧 接下来我会一步一步地敲一个hello who?代码 下载 如果你使用的是linux系统: sudo apt-get install golang 如果没成功: sudo add-apt-reposito…
1 概述 1.1 计算机 计算机包括硬件和软件两部分.硬件包括计算机中可以看得见的物理部分.软件提供看不见的指令.这些指令控制硬件并且使得硬件完成特定的任务. 1.2 程序设计 定义:创建(或开发软件).软件包含了指令,告诉计算机做什么. 应用场景:软件遍布我们周围.除了个人计算机,飞机.汽车.手机甚至烤面包机中,同样运行着软件. 1.3 程序设计语言 软件开发人员在程序设计语言的强大工具的帮助下制作软件. 1.4 如何选择学习那种编程语言? 程序设计语言有很多种,每种语言都是为了实现某个特定的…
委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可. 一.同步容器类 1.同步容器类的问题 同步容器类都是线程安全的,容器本身内置的复合操作能够保证原子性,但是当在其上进行客户端复合操作则需要额外加锁保护其安全性 由于同步容器类要遵守同步策略,即支持客户端加锁,但必须清楚加入同一个锁 2.迭代器与ConcurrentModificationException 及时失败机制:容器在迭代过程中被修改时 ,就会抛出一个ConcurrentModificationExcep…
一.同步容器类 1. 同步容器类的问题 线程容器类都是线程安全的.可是当在其上进行符合操作则须要而外加锁保护其安全性. 常见符合操作包括: . 迭代 . 跳转(依据指定顺序找到当前元素的下一个元素) . 条件运算 迭代问题能够查看之前的文章 <Java ConcurrentModificationException 异常分析与解决方式> 二.并发容器 集合类型 非线程安全 线程安全 List ArrayList CopyOnWriteArrayList Set SortedSet Concur…
C语言的一些简单操作练习. 互换两个数字: # include <stdio.h> int main(void) { int i = 3; int j = 5; int t;   //将i与j的值交换 t = i; i = j; j = t; printf("i = %d, j = %d\n", i, j); return 0; } 输出随意字符随意层的金字塔: # include<stdio.h> main() { int a,i,j; char c; pri…
属性页对话框包括向导对话框和一般属性页对话框两类,上一节讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的.将上一节中的向导对话框进行少量修改,使其成为一般属性页对话框. 一般属性页对话框的创建步骤: 1.创建属性页对话框资源 属性页对话框资源的创建方法同向导对话框是一样的,上一讲中的对话框资源不需要进行任何修改. 2.创建属性页类 属性页类的创建和向导对话框的属性页类也基本一样,只是一般属性页对话框中不需要…
Storm是一个分布式的流处理系统,利用anchor和ack机制保证所有tuple都被成功处理.如果tuple出错,则可以被重传,但是如何保证出错的tuple只被处理一次呢?Storm提供了一套事务性组件Transaction Topology,用来解决这个问题. Transactional Topology目前已经不再维护,由Trident来实现事务性topology,但是原理相同. 5.1一致性事务的设计 Storm如何实现即对tuple并行处理,又保证事务性.本节从简单的事务性实现方法入手…
Lock锁 锁是用来控制多个线程访问共享资源的方式. 一般来说一个锁可以防止多个线程同时访问共享资源(但有些锁可以允许多个线程访问共享资源,如读写锁). 在Lock接口出现前,java使用synchronized关键字实现锁的功能,但是在javaSE5之后,并发包中提供了Lock接口(以及其实现类)用来实现锁的功能. Lock提供了与synchronized相似的功能,但必须显示的获取锁与释放锁,虽然不及隐式操作方便,但是拥有了锁获取与释放的可操作性.可中断的锁获取与超时获取锁等多重功能. 提供…