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. java_jdbc_可变参数_MetaData

    异常处理参考3层解耦 ublic class ScrollTest { public static void main(String[] args) throws SQLException { // ...

  2. PHP获取远程图片并调整图像大小

    <?php /** * *函数:调整图片尺寸或生成缩略图 *修改:2013-2-15 *返回:True/False *参数: *   $Image   需要调整的图片(含路径) *   $Dw= ...

  3. 外网访问SVN

    1.路由端口映射: 进入路由器管理管理界面-->转发规则-->虚拟服务器 将端口3690(svn默认端口)和你的局域网IP(如192.168.1.104)映射,勾上“启动”,保存,OK了. ...

  4. VIM7.3中文手册

    INDEX *index.txt*     For Vim version 7.3.  最近更新: 2010年7月 VIM 参考手册    by Bram Moolenaar 译者: Willis h ...

  5. JS实现字符串去重,数组去重

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. C语言枚举

    应该是 各种语言都支持枚举的. 所以这个 之前在我们java案例里面就出现过的季节代码再次出现了. 枚举帮我们起到一个变量值,在某一范围内的限定,用来避免一些非法值的键入. 值得注意的是,这里面的枚举 ...

  7. SqlBulkCopy 数据批量操作使用的类

    private void SqlBulkCopyByDataTable(string connectionString,string TableName,DataTable dt) { using ( ...

  8. 关于error: cannot connect to daemon的解决办法

    执行adb devices时,如果出现以下错误: * daemon not running. starting it now on port 5037 * ADB server didn't ACK ...

  9. ACM——Digital Roots

    http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1028 Digital Roots 时间 ...

  10. Mysql 冷备份批处理

    @Rem Generate today date @echo wscript.echo dateadd("d",0,date)>GetOldDate.vbs @for /f ...