C语言随记-1】的更多相关文章

涉及指针.数组.函数指针 几种声明形式 int *a[5]; // a是一个有5个元素的数组,每个元素是整数类型指针(int *) int *a[] = {0x100, 0x104, 0x108, 0x10c, 0x120}; // 0x100,...,0x10c,0x120表示物理地址 注: 第二条代码,gcc会报waring int *a[]; //语法错误,需要指定数组长度 int (*a)[]; // a是一个指针,指向整型数组第1个元素,数组元素个数没有限制 int (*a)[10];…
是任意形式的递归,是化解的一般式. 主题所谓的“递归调用化解为栈处理”,意思是,将递归函数调用化解为“一个由stack_push stack_pop stack_top等函数调用组成的循环式子”.这里的 stack_push, stack_pop, stack_top是指,程序员自己实现的一个ADT(Abstract Data Type)中的函数操作接口,这个ADT叫做栈.要知道,在C语言中,函数调用链本身就是栈处理的,处理C语言中函数调用链的是进程栈/线程栈,进程栈/线程栈是一个C语言程序运行…
图灵机(英语:Turing machine),又称确定型图灵机,是英国数学家艾伦·图灵于1936年提出的一种抽象计算模型,其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器. 目录 1图灵的基本思想 2图灵机的正式定义 3图灵机的基本术语 4图灵机的例子 5通用图灵机 6图灵机的变体 7图灵可计算性 8其它等价的计算模型 9参考文献 10外部链接 图灵的基本思想 图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作: 在…
本节知识点是<编译原理>第三章-词法分析,学习参考教材为清华大学出版社<编译原理>第三版: 前情提要: 字母表∑1和∑2的乘积( product): ∑1∑2 ={ab|a ∈∑1, b ∈ ∑2} 例: {0, 1} {a, b} ={0a, 0b, 1a, 1b} 字母表∑的n次幂( power):长度为n的符号串构成的集合 ∑0 ={ ε } ∑n =∑n-1 ∑ , n ≥ 例: {0, 1}3 ={0, 1} {0, 1} {0, 1}={000, 001, 010, 0…
JavaScript之父谈语言诞生记 发表于2011-06-27 10:30| 9749次阅读| 来源ruanyifeng.com| 0 条评论| 作者阮一峰 prototypeprimitivejavascript浏览器语言 摘要:本文来自阮一峰的网络日志,作者从历史的角度,给大家讲述Javascript到底是如何设计出来的. 导读:原文来自阮一峰的网络日志,作者从历史的角度,给大家讲述Javascript到底是如何设计出来的.文章内容如下: 两周前,我谈了一点Javascript的历史. 今…
 Html超文本标记语言,负责描绘Web世界的骨架. 〇.工具 http;//www.w3cchool.com.cn 一.Tim Bemers Lee 万维网之父: Html设计者: W3C创始人: 二.运行原理 1,本地运行 浏览器解析: 2,远程访问运行 通过浏览器发送Http请求给Apache服务器,服务器响应Http请求,返回给浏览器: 三.Form表单元素 输入框: 单选框: 复选框: 文本框: 密码框等. 四.Tabale与列表 1,DIV与CSS (1)思想 数据与样式分离 (2)…
看一小段C语言程序: int main() { float x = 1.3; x = x - (int)x; ); ; } 在你心目中, 变量 I 是怎样的结果? 如果你理所当然地认为是3的话, 那么你就错了~~~ 实际结果应该是2.   为什么? 简而言之, x在内存的值并不是精确的1.3, 实际上可能是1.29999999...... 因为在计算机组成原因中有说过, 浮点数无法被准确地表示出来, 只能是一个非常精确的值.. 就算现在你已经知道这个"坑"了, 但还是不小心会犯, 所以…
    做了个小项目,有空闲可以做点事了. 偶然查资料看见YouCompleteMe的鼎鼎大名. 演示demo <img src="http://i.imgur.com/0OP4ood.gif" alt="YouCompleteMe GIF demo"> vim中的杀手级插件: YouCompleteMehttp://zuyunfei.com/2013/05/16/killer-plugin-of-vim-youcompleteme/vim中的五星级软件…
公司开发和测试环境采用的erlang版本是19.0.3,rabbitmq版本为3.6.10.集群条件下稳定使用了近一年时间,没什么问题. 为了保持和线下一致,线上生产环境采用了相同的版本,运行几个月后,出现问题.现象如下: 在几天时间内,有三个队列出现没有消费者的问题.查看rabbitmq的日志. operation queue.declare caused a channel exception not_found: failed to perform operation on queue '…
DBMS (Database Management System) 字段/域(列名或者列头 如:姓名身高性别为字段) 姓名 身高 性别 小周周 157 女 记录(一行数据 如:小周周 157 女 ) 元组(所有记录) 冗余(可以一个表就能储存的数据分成了两个表储存,只需要在表上添加一个字段就可以解决的嗯~是这样的) 完整性(指的数据的正确性,比如主键的字段出现了重复那么说明这个数据不完整) 主键  不能重复,不能为空(失去了实体完整性) 外键 (某一张表的数据在源于另外一张表(通过主键引用) 引…
一.C语言指针学习架构 1.基本数据类型---指针 2.字符串---指针 3.数组---指针 4.函数---指针 5.结构体---指针 6.共用体---指针 7.枚举---指针 8.位域---指针 9,常量---指针 10.变量---指针 二.C语言中的void与NULL //void真正发挥的作用在于://(1) 对函数返回的限定://(2) 对函数参数的限定//  (3)void不能代表一个真实的变量, 凡是试图用它去表示真值得做法都是不合法的//void的出现只是为了一种抽象的需要,如果你…
include<stdio.h> #include<iostream> int main() { char a[] = "123"; char b[] = "abcd"; if (a > b) { printf("a>b \n"); } else printf("a<b\n"); printf("%p\n %p\n", a, b); system("pau…
在该书的527页中18.6理论题中,书中这样写道"完全结点是指每个结点都有两个孩子.证明,完全二叉树的结点数加1等于叶子树." 初看此题目,本人觉得很纳闷,再细细想之,发现似乎是个伪命题. 后来把原版书拿过来,发现书中是这样写的:"A full node is a node with two children. Prove that in a binary tree the number of full nodes plus 1 equals the number of le…
目录 1.重点知识 2.什么是编程?为什么要编程? 3.有哪些编程语言? 3.1.机器语言 3.2.汇编语言 3.3.高级语言 3.3.1.编译型语言 3.3.2.解释型语言 3.4.小结 4.主流编程语言介绍 4.1.主流编程语言介绍 4.1.1.C 语言 4.1.2.C ++ 4.1.3.JAVA 4.1.4.PHP 4.1.5.Ruby 4.1.6.Go 4.1.7.Python 1.重点知识 什么是编程?为什么要编程? 理解编程语言是什么?为什么要编程? 编程语言是如何与计算机底层通信的…
最近看到一篇文章讲IMAGE DECOMPOSITION,里面提到了将图像分为Texture layer和Structure layer,测试了很多方法,对于那些具有非常强烈纹理的图像,总觉得用TV去燥的方法分离的结果都比其他的方法都要好(比如导向.双边),比如下图: 再比如:   可见TV可以把纹理很好的提取出来. 现在应该能找到很多的TV代码,比如IPOL上就有,详见http://www.ipol.im/pub/art/2013/61/. 我在其他地方也见过一些,比如这里: http://y…
#include<stdio.h> /*告诉编译器把stdio.h 中的内容包含在当前程序中,stdio.h是C编译器软件包的标准部分,它提供键盘输入和 屏幕输入的支持studio.h文件名的含义:标准输入输出头文件——C程序顶部的信息集合被称为头文件, ANSI/ISO C 规定了C的编译器必须要包含哪些头文件,如果不使用头 文件,在一些程序中可能不会受到影响 ,但是并不建议这样做.*/ int main(void)        /*int 表示main返回的数据类型是整数,void表明m…
前言 如果在Lua语言中某一处死循环了!你特么的怎么去查出这特么的该死的循环到底在特么的哪里!!! 重现步骤 一打开技能界面,整个游戏就卡死不动了 开始排查 查看一下cpu占用率,unity占用60%+,应该是死循环 一开始采取冒烟式查错法,去一些可疑的地方一个个打断点(我们有lua调试工具可断点). 游戏的大循环,事件派发基层接口,lua调用c#的基层接口等等,都加了很多断点 可喜的是~~ 完全没有进来! 要怎么才知道当前运行哪段代码呢?这个问题让我想起一个东西 debug.sethook d…
前言 工作之中,我们习惯了碰到任务就直接去实现其业务逻辑,但是C#真正的一些基础知识,在我们久而久之不去了解巩固的情况下,就会忽视掉.我深知自己正一步步走向只知用法却不知原理的深渊,所以工作之余,一直想找一些能深入讲解C#基础知识和底层原理的书籍,有幸在网上看到了<.net之美>一书,(--张子阳作 )开始只是简单的做了阅读,但是越往下读,发现书中所述都是自己所薄弱或者是工作中遇到但是解释不清其原理的知识点,为了加深自己的印象,故萌生出写下读书笔记的想法,也是为自己的学习有个记录,方便日后查阅…
==========================第11章 字符和字符串函数==========================震惊:字符串常量属于静态存储类,常量引号中的内容作为指向该字符串存储位置的指针:printf("%s, %p, %c\n","we","are",*"young!");语句执行的结果如下:we, 0x4005e4, y 字符串的数组声明:char str[] = "string A&quo…
//仅供参考学习 1 #define _CRT_SECURE_NO_WARNINGS //屏蔽 vs 的a #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <process.h> #include <time.h> #include <memory.h> //直接改 m_MAX 的值则是改变总的范围 #define m_MAX 250000 //…
1.codeblocks中的pow函数会有误差. 自定义pow函数: int pow(int x,int y) { ; ; i<=y; i++) t=t*x; return t; } 2.C库函数: 1)数学函数math.h: (1)绝对值函数fabs().abs(); (2)反三角函数:asin();acos();atan() 3. %03d表示输出长度为3,当小于3时左端补0. 4. scanf("%c%c",&c,&d);会连回车也读进去,影响后面的输入.…
坑的描述 用fwrite把数据写入文件,再用fread读取,发现后半部分的数据可能是错的. 原因:原本要写入文件的数据中,有0x0A,如果用的是文本模式打开的文件流,在windows下0x0A会被转换为0x0D和0x0A 其实windows下的git bash每次git add后都有类似的提示,只是一直没太注意: 先说结论 用fread或fwrite的时候,如果是要写入字符,那么打开的文件.读取的文件,用字符模式(w和r) FILE* fin = fopen("filename", &…
1.strdup() 功能:克隆一个副本,具有独立的内存空间 声明:char *strdup(char *str): 原型: char * __strdup (const char *s) { size_t len =strlen (s) + 1; void *new =malloc (len); if (new == NULL) return NULL; return (char *)memcpy (new, s, len); } strndup() 功能:克隆一个n长度副本,具有独立的内存空…
#include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char c; int i,j; char str1[] = "ABCDa-z0-9",str2[50]; i = j = 0; while((c = str1[i++]) != '\0') if(str1[i] == '-' && str1[i +…
今天开始学写一些简单的C例子,发现很多和PHP不一样的地方,做个笔记. #include <stdio.h> int main(void) { int a,b; printf("请输入整数a"); //这里是用双引号,不能用单引号,PHP类似的地方可以用单引号,这里需注意 scanf("%d",&a); //获取用户输入值存入a printf("请输入整数b"); scanf("%d",&b);//…
题目如下 解答如下 #include <stdio.h> #include<math.h> double Mysqrt(double n) { return sqrt(n); } int main() { double a[][2] = { {1,1.2},{1,1},{2,1.2},{2,1} ,{3,4} ,{2.2,1.2} ,{1,7} ,{4,1.8} ,{1.1,9} ,{3,5} ,{5,6} }; double max = 0; for (int i = 0; i…
有关代码见BasicJava U1-Java概述 1-程序设计风格和文档 1.注释风格 注释:// ; 块注释:/* ~ / ; javadoc注释:/* ~ */ javadoc注释 eg. /** * @link:{@link 包名.类名#方法名(参数类型)} 用于快速链接到相关代码 * * @link的使用语法{@link 包名.类名#方法名(参数类型)},其中当包名在当前类中已经导入了包名可以省略,可以只是一个类名,也可以是仅仅是一个方法名, * 也可以是类名.方法名,使用此文档标记的类…
踩内存问题,个人认为算是比较容易出现但是有很难定位的问题,被踩者轻者功能瘫痪,重者一命呜呼,直接诱发死机.产生踩内存的的原因也比较多样,比较典型的有如下几种: 数组越界访问 字符串越界操作 直接操作野指针 操作了一块已经被释放了内存 这几种问题,单独说起来都是比较容易发现问题,但这些问题往往在某些环境中不会出现,但是在另外的环境下几乎是必现问题,这时定位起来难度就便增加了很多.这种情况往往是基本逻辑没有问题,在某些环境下(多核.异步.其他复杂环境等)逻辑上出现错误导致出现踩内存的问题. 下面我记…
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentation 开始寻找感兴趣的内容.本博客不定期从 Oracle 官网搬砖.这一篇主要讲 Java 中的 I/O,官方文档在这里 Java I/O, NIO, and NIO.2. 前言 不知道大家看到这个标题会不会笑我,一个使用 Java 多年的老程序员居然一直没有记住 Java 中的 I/O.不过说实话…
第一个程序 package main import "fmt" func main() { fmt.Printf("Hello world") } 通过阅读这个程序,解释几点: 首行的package main 是必须的.所有的go文件以package something 开头,对于独立运行的执行文件必须是package main 编译运行 构建Go程序的最佳途径是使用Go工具, % go build helloworld.go % ./helloworld 变量.类…