c语言作为经典语言,这里不再多说了.咱从基础一起探讨吧!

一. 定义一个整型,如果作为局部变量,没有初始化的情况下,它是一个随机的值的,一般情况下输出会是0,但这个0是作为垃圾值的;而如果作为全局变量,没有初始化的情况下,它的值是0.

二.我们都知道,static是用于声明一个内部全局变量,在使用static的时候,并不会在内存中重新开辟一块存储空间的,那么它的优越性是时候发挥作用了,如果当某个方法的调用频率非常高,而该方法中有写变量的值是固定不变的,如果我们使用static来修饰该变量,让该变量只开辟一次存储空间,在运行过程中就可以提高程序的效率和性能了.

三.带参数的宏定义一些细节.如果说我们使用一个带参数的宏定义去做一些简单的运算,少量的代码可能显示不出他的优越性,但在成千上万行代码中,能为整个软件程序运行提高不少性能勒!                  例如一个简单的例子,int a = 10;int b = 20;计算结果可以int res = a + b;使用宏定义应该这样的:在main函数外面先#define SUM(v1,v2)(v1+v2)            在main函数里面直接实现    int res = SUM(a,b);    看似没有区别,从运行原理来看,宏定义让程序运行的直接拿到的是(10 + 20)去运算,而没有使用宏定义要先让a和b分别赋值后再运算,是多走了一步"弯路"的.

四.提到宏,应该会想到typedef,define和typedef中有一些细节,可能有些朋友不会注意到,如果说要给指针类型变量"起别名",当使用define的时候会有什么"意外"发生呢?   好,我先来一个#defiine MY_STRING char *                 在main函数里面调用MY_STRING name1,name2;   会出现什么后果呢,结果告诉你,会有bug的. 原因是因为MY_STRING name1,name2====char *name1;char name2;  我个人通俗点说,就是name2"吃不到*",作为指针变量,没有*运行当然会报错了!

不足之处还望指出,感激不尽!

-----奈文摩尔

												

c语言的一些基础知识的更多相关文章

  1. 5-24 c++语言之【基础知识】

    最近一段时间继续开始了c++的学习,作为c plus plus 难免会与c语言做一个对比,很明显的感受到c++语言注重代码的复用性和拓展性,而c语言更加注重其算法的高效性,这也是今后需要注意的地方,避 ...

  2. [转] linux操作系统下c语言编程入门--基础知识

    点击阅读原文 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 1. 源程序编译        2. Makefile的编写        3. 程序库 ...

  3. C语言中的基础知识变量探讨

    C语言中的变量是编程的基础,主要有四个要素:存储类型.存储大小.存储名称和存储地址. 一.变量的要素: 1.存储类型:主要表明名变量存储的特征,主要有auto.extern.static和regist ...

  4. 关于XML(可扩展标记语言)的基础知识与写法

    XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示   XML:可扩展标记语言,用来做数据传输XML特点:1.树状结构,有且只有一个根2.标签名自定 ...

  5. Swift5 语言指南(四) 基础知识

    Swift是iOS,macOS,watchOS和tvOS应用程序开发的新编程语言.尽管如此,Swift的许多部分对您在C和Objective-C中的开发经验都很熟悉. 雨燕提供了自己的所有基本C和Ob ...

  6. c语言与c++基础知识

    1.后缀名: C++/C程序的头文件以.h为后缀,C程序的源文件以.c为后缀,C++程序的源文件通常以.cpp为后缀(有些书中介绍有一些系统以.cc或.cxx为后缀的源文件).在Linux系统下的gc ...

  7. c语言-树的基础知识

    第一.树的定义:   1.有且只有一个称为根的节点   2.有若干个互不相交的子树,这些子树本身也是一颗树 第二.专业术语: 树的深度:从根节点到最低层,节点的层数 ,称之为树的深度.  根节点是第一 ...

  8. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  9. Jquery真的不难~第一回 编程基础知识

    Jquery真的不难~第一回 编程基础知识   回到目录 前言 说Jquery之前,先来学习一下Javascript(以后简称为JS)语言中的基础知识问题,其时对于每种编程语言来说基础知识都是大同小异 ...

随机推荐

  1. 数字转化成字符串C语言

    #include <stdio.h> void Myitoa(int,char *); int getnumberLength(int); int main(){ ]; ; Myitoa( ...

  2. bootstrap在iis中发布后无法看到图标,字体样式

      因为框架使用了字体文件来显示矢量的图标,为了能在IIS上正常显示图标,可以通过增加iis的MIME-TYPE来支持图标字体文件:

  3. Android 自学之相对布局 RelativeLayout

    相对布局(RelativeLayout),相对布局容器内子组件的位置总是相对兄弟组件.父容器来决定的. RelativeLayout的XML属性及相关方法说明 XML属性 相关方法 说明 androi ...

  4. 关于Git的工作区域和对应的文件状态.

    Git是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器. Git ...

  5. linux 中的vim的配置文件的位置

    /etc下面也有一个vimrc:这个文件对所有用户都有效 在用户家目录(/home/用户名:或/root/)下面有一个.viminfo,只针对特定的用户有效

  6. 【转】SharePoint工作流中常用的方法

    SharePoint中使用工作流对象模型. SharePoint工作流对象模型在Microsoft.SharePoint.Workflow命名空间.你可以利用此对象模型对你的工作流进行编程.你可以启动 ...

  7. 预算oracle

    select * from ( )) CODE_VERSION from ( SELECT tb_cube_fc05.pk_entity pk_org,/*主体pk*/ org_orgs.code o ...

  8. 关于H5+css3的一些简单知识

    最近在一个群里看到,有人在探讨H5,也看到自己关注的大神使用过H5的画布(canvas),于是心血来潮,看了点教程,也算对的起自己吧. 一.H5的新特性: 1.用于绘画的canvas元素 2.用于媒介 ...

  9. nyist 42 一笔画 (欧拉回路 + 并查集)

    nyoj42 分析: 若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径. 若该路径是一个圈,则称为欧拉(Euler)回路. 具有欧拉回路的图称为欧拉图(简称E图).具有欧拉路 ...

  10. hiveserver2 后台运行

    启动hivemetastore  hive --service metastore 启动hiveserver2   hive --service  hiveserver2 beeline !conne ...