C
牛犊儿爸
这个作者很懒,什么都没留下…
展开
-
字符数组与字符指针
1.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明语句:char string[ ]="This is a string.";此时,string是字符原创 2017-07-07 09:24:35 · 210 阅读 · 0 评论 -
指针常量和常量指针
char * const c;指针常量 是 指针类型的常量,即指针本身是常量,只能指向固定的区域;但该区域中的内容可以改变。const char *c; 或 char const *c;常量指针 是 指向常量的指针,即指针指向区域的内容是常量,不能更改;但该指针可以指向其它区域。辨别方法可为:从左到右顺序读*读作指针,const读作常量,谁在后谁决定本质。①const int p; ②const原创 2017-07-07 09:24:47 · 150 阅读 · 0 评论 -
C/C++为什么比JAVA快
大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,“执行速度缓慢”的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术还不成熟,主要靠解释器执行的Java语言确实性能比较低下。但是在今天JIT编译技术已经发展成熟之后,Java语言有可能在速度上与C/C++争一日长短了吗?这个问题的答案,让我们从两者的编译器谈起。 Java与C/C++的编原创 2017-07-07 09:24:53 · 8395 阅读 · 0 评论 -
空指针和野指针
空指针是指向NULL的指针;指针变量在定义后如果没有初始化是野指针,其值不为NULL,指向一个随机地址。故在使用*析取(dereference)之前,应确保指针指向合法的地址原创 2017-07-07 09:25:02 · 205 阅读 · 0 评论 -
GCC和C99 中的inline
内联函数是代码被插入到调用者代码处的函数。如同 #define 宏(但并不等同,原因见下文),内联函数通过避免被调用的开销来提高执行效率,尤其是它能够通过调用(“过程化集成”)被编译器优化。 gcc对C语言的inline做了自己的扩展,其行为与C99标准中的inline有较大的不同。1.1. static inline GCC的static inline定义很容易理解:你可以把它认为是原创 2017-07-07 09:25:05 · 1123 阅读 · 0 评论 -
C函数参数传递
对于C语言的参数传递都是值传递,当传传递一个指针给函数的时,其实质上还是值传递,除非使用双指针。 在讲双指针之前,还是先讲讲关于C语言函数调用的本质。函 数调用操作包括从一块代码到另一块代码之间的双向数据传递和执行控制转移。数据传递通过函数参数和返回值来进行,包括局部变量的空间分配与回收,都是通过 栈来实现的。绝大多数CPU上的程序实现使用栈来支持函数调用操作。栈被用来传递函数参数原创 2017-07-07 09:24:50 · 289 阅读 · 0 评论