
C 语言
wfq0624
这个作者很懒,什么都没留下…
展开
-
const int *a 与int *const a的区别
const int *a ==》const用来修饰指针a所指向的对象 无法通过指针a来修改其所指向的对象的值 但a这个指针本身的值(地址)是可以改变的,可以指向其他对象 int *const a ==》const用来修饰指针a 因此,a这个指针本身的值(地址)是不可以改变的, 而该指针所指向的对象的值是可以改变的原创 2012-06-08 23:14:27 · 716 阅读 · 0 评论 -
volatile 说明
如果把一个变量定义为volatile,相当于告诉编译器该变量可能随时被改变,例如被操作系统或硬件改变。 因为带有volatile的变量可以在任何时刻改变,该变量的物理地址可能被频繁的访问,这就意味着编译器 不能对这些变量实行优化 相反,一个变量未被定义成volatile,则编译器认为该变量不能在应用程序之外改变,因此编译器可以对 这种变量实行优化 volatile一般应用在如下场原创 2012-06-08 23:28:49 · 764 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end的原理与使用
概述 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义 大家先看几宏. 在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义: #define _INTSIZEOF(n) ((sizeof(转载 2012-06-12 23:44:39 · 745 阅读 · 0 评论 -
函数指针
函数指针 函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用转载 2012-06-13 22:07:37 · 523 阅读 · 0 评论