精华内容
下载资源
问答
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    我是一名武汉大学电子科技大3的学生,学了电子线路、数字逻辑、汇编和接口、C语言,但是总是感觉很迷茫,觉好象什么都不会。怎么办? 答:大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相...
  • 工作近两年,也越来越思考着怎么把代码写的比较规范,下面就是一直以来的总结,和各位分享 一 关于规范性的: 1 注释单行 // ,多行/* */。 2 关于函数命名 测试代码可以有test命名,测试代码尽量不要有test,...

    工作近两年,也越来越思考着怎么把代码写的比较规范,下面就是一直以来的总结,和各位分享
    一 关于规范性的:
    1 注释单行用 // ,多行用/* */。
    2 关于函数命名 测试代码可以有test命名,非测试代码尽量不要有test,以防误解
    函数命名意义尽量和注释一致
    函数命名(动词+名词)
    3 引脚的宏定义(关于引脚的宏定义,引脚名在前,引脚数在后。其他的也可以模仿:表明一类的在前,变化的在后)
    4 对于全局变量加注释
    5 函数内部每个功能模块后面空一行
    二 关于思路方面:
    1 在写代码前先罗列出思路逻辑框架
    2 封装代码依据驱动层,功能层和应用层来封装
    3 关于驱动层尽量封装完善,如gpio的封装,一些中断的封装和模块的封装,使其具备低耦合和可移植性
    4 关于功能层和应用层后续补上…
    参考文档:https://download.csdn.net/download/weixin_44716940/15864384
    参考书籍:https://download.csdn.net/download/weixin_44716940/15926099
    参考博客:https://editor.csdn.net/md/?articleId=107129559

    展开全文
  • 单链表是线性表的链式存储方式,链式结构说白了就是指针来实现数组的操作罢了,但是很难(QWQ), 尤其是我c语言一塌糊涂,所以指针压根就没怎么搞懂,哈哈哈,其实我觉得只用会了自然就懂了,所以加油吧。...

    单链表

    1. 单链表是线性表的链式存储方式,链式结构说白了就是用指针来实现数组的操作罢了,但是很难(QWQ),---------- 尤其是我c语言一塌糊涂,所以指针压根就没怎么搞懂,哈哈哈,其实我觉得只用会用了自然就懂了,所以加油吧。QuQ
    2. 单链表的特点在于逻辑上相邻的元素其物理上不一定相邻,也就是说它是一种非随机存储的存储结构,需要通过一系列的指针来进行操作。
    3. 因为要保证逻辑上的相邻,所以需要定义一个指针域来存储下一个元素的位置,所以单链表的结构体定义为:
    typdef struct  LNode{
           Elemtype  data;    //数据域
           struct LNode *next  // 指针域,用于存放下一个结点(元素)的地址位置
    }  LNode, *Linklist;
    
    1. 这里我们可以注意一下 LNode , 和 *LinkList , 他们分别是 struct LNode 定义的一个变量和一个指针, 由于我们这里用了typdef 关键字, 所以我们在main函数里也可直接用LinkList 来声明单链表;
    int main(void)
    {
      LinkList   L;  // 建立一张单链表
      //LNode  *L;   //此种方法也可以建立链表,但是容易搞混
    }
    

    ps: 这里我们可以思考一下, 为什么不能用以下这种方式定义单链表:

    int main(void)
    {
    LNode  L;   // 老子就想这样定义,但是好像不行(QWQ)
    }
    

    ,,,原因很简单,因为你的单链表中相关函数的操作就是针对单链表的,但是LNode只不过是一个你设置的结构体变量,并不是指针,而函数对于单链表的操作本身是对于指针的操作,所以我们得用上面的两种操作。

    1. 其实对于LNode * 和 LinkList 想要理解也不是特别简单,尤其是新人,比如下面两段代码:
    void CreateList_L(LinkList &L, int n)
    {
       L = (LinkList) malloc (sizeof(LNode));   //强调这是一张链表
       L ->next = NULL;
       for(int i = n; i>0; i--){
          p = (LNode *) malloc (sizeof(LNode));   //强调这是一个节点
          .......
       }
    }
    
    LinkList  List_TailInsert(LinkList &L)
    {
      int x;
      L = (LinkList)malloc(sizeof(LNode));  //强调这是一张链表
      LNode *s, *r = L; 
      scanf(&x); //& 取x的地址
      while(x != 9999)
      {
         s = (LNode *) malloc(sizeof(LNode));   //强调这是一个节点
         ...... 
      }
    }
    
    1. 通过上面两段代码可以看出, LNode* 和 LinkList 的含义是相同的,都是 LNode 的一个指针,但是他们的侧重点不同:

      LNode * 强调节点, LinkList 强调链表
      这里为了怕搞混淆,其实可以理解为,当你的操作是需要建立或者对表进行相关操作时,你就用LinkList, 如果是需要用到结点的相关操作,比如删除,或者增加某个结点, 你就用LNode *;

    2. 单链表的其他操作以及c++实现放到下面一篇,这篇先水一波(QWQ)

    3. 在加一点,因为单链表有带头结点和不带头结点两种操作,但是由于水平有限,所以在接下来的文章只会介绍单链表带头节点的相关操作和代码实现,至于不带头结点的,可以看看然后自己理解理解就行。

    4. 啊,,, 指针这玩意想要好好理解确实很麻烦,我上面写的这么些东西不过是想强调两件事:
      单链表是对指针的线性操作;
      LinkList 是用来强调单链表的,而LNode * 是用来强调结点的。

    展开全文
  • 编译原理 C编译器

    2017-02-17 21:18:01
    可将C语言的裴波纳契和pi.c的翻译为汇编语言。...3编译器演示程序,可将C语言子集测试程序编译为目标代码——汇编程序,汇编器转换为二进制程序后运行无误,如斐波那契数列程序,应能翻译为正确的汇编程序。
  • 编译原理简易C编译器

    2017-02-17 20:53:39
    只能实现斐波那契数列,没有实现pi.c,得分五分 ...3编译器演示程序,可将C语言子集测试程序编译为目标代码——汇编程序,汇编器转换为二进制程序后运行无误,如斐波那契数列程序,应能翻译为正确的汇编程序。
  • 第二: 专业概念抽象级 这一级是抽象出一个专业的逻辑概念,让学过点计算机知识的人能听得懂,可以不用去了解具体的细节点, 比如虚拟内存,老百姓是听不懂的,学过计算机的人都懂,具体怎么实现的很多人又都不懂了,但这并...
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    面试题55 如何使用const引用与const引用 54 4.5 C与C++的联系 55 面试题56 C与C++有什么区别 55 4.6 编程规范 55 面试题57 什么是匈牙利命名法 55 面试题58 变量有什么命名规则 56 第5章 流程控制(教学视频:24...
  • 平素喜好新鲜事物,但决新潮技术的追捧者,至今还陷在设计模式、面向对象方法之中,不能自拔。好舞文弄墨,传播心得,著有博客:http://imcc.blogbus.com? 目录 第1篇 叩开C++世界的大门  第1章 C++世界地图  ...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机...
  • 需求模拟技术又分为企业模拟、功能需求模拟和功能需求模拟等。 (3) 传递需求 传递需求的主要任务是书写软件需求规格说明。 (4) 认可需求 就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突...
  • 易学C++,C++入门

    2009-12-06 14:30:11
    本书的内容涵盖了绝大部分常用的C++知识,可以作为大学计算机专业或计算机专业的程序设计入门教材,也可供计算机爱好者自学使用。 目录 -------------------------------------------------------------------...
  • 大话数据结构

    2018-12-14 16:02:18
    C语言版大话数据结构与算法,很有趣,值得一读 大话数据结构 目 录 第1章数据结构绪论 1 1.1开场白 2 如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。 1.2你数据结构...
  • 已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999) [同作者作品] 计算机基础教程(上下)...
  • c++ 面试题 总结

    2009-09-16 08:44:40
    一个指向char类型的const对象指针,p不是常量,我们可以修改p的值,使其指向不同的char,但是不能改变它指向char对象,如: const char *p; char c1='a'; char c2='b'; p=&c1;//ok p=&c2;//ok *p=c1;//error (2)...
  • 已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999) [同作者作品] 计算机基础教程(上下)...
  • C++程序设计语言(特别版)--源代码

    热门讨论 2012-04-23 07:33:51
    已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999) [同作者作品] 计算机基础教程(上下)...
  • 12、公共资源的互斥性和竞性 第40页 【案例1.12.1】 第40页 【案例1.12.2】 第40页 二、接口类代码问题 第43页 1、对函数参数进行有效性检查 第43页 【案例2.1.1】 第43页 【案例2.1.2】 第43页 【案例2.1.3】 第...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

c语言逻辑非怎么用

c语言 订阅