
C/C++语言
刺客阿瑞
把时髦的技术挂在嘴上,不如把过时的技术记在心里。
展开
-
auto,register,static分析
C语言变量都有自己的属性,在定义变量时可加上“属性”关键字。1.auto(1)auto即C语言局部变量的默认属性(栈上分配空间)(2)编译器默认的所有局部变量都是auto的2.staticstatic关键字指明变量的“静态”属性,同时static有“作用于限定符”的意义。(1)static修饰的局部变量存储在程序静态区(2)static的另一个意义就是文原创 2013-11-07 15:40:57 · 826 阅读 · 0 评论 -
C语言中的sizeof(struct )和sizeof(union)
一般32位机上各数据类型所占存储空间为:char : 8位short : 16位int : 32位long : 32位float : 32位double : 64位一、结构体struct 1.在没有#pragma pack 宏的情况下:三条原则:(1)数据成员对齐规则:(原则1)结构体struct的数据成员,第一个数据成员放在offset为0的地原创 2013-11-06 21:19:07 · 4603 阅读 · 0 评论 -
字符串面量指针的只读性质
#include <>原创 2013-11-06 21:27:49 · 1481 阅读 · 0 评论 -
内存管理及常见的问题
内存分配的方式:(1)从静态存储区域分配内存在程序编译的时候就已经分配好,在程序运行期间都存在,例如全局变量,static变量。(2)栈上创建执行函数时,函数内部变量存储单元都在栈上创建,函数结束时自动释放,栈内存分配运算符内置于处理器指令集,效率高,但分配内存有限。(3)堆上分配也称为动态内存分配,程序在运行时用malloc或new来申请任意多的内存,程序员自己负责在何时原创 2013-11-06 23:12:07 · 972 阅读 · 0 评论 -
字符数组和字符指针
有:char date[] = "June 14" ;char *date = "June 14" ;正因为有了数组和指针之间的紧密关系,才使得上面的两个声明的date可作为字符串,然而,上面的两个date不可以互换,差异:1.在声明数组时,就像任意数组元素一样,可修改存放在date中的字符 ; 在声明为指针时,date指向字符串面量(字符串常量),前面的文章已原创 2013-11-06 22:01:05 · 859 阅读 · 0 评论 -
关于寻找字符串结尾的方法讨论
这里,提供两种搜索字符串的结尾的方法:【方法一】惯用法:while(*s)s++;【方法二】惯用法:while(*s++);这两种方法都是寻找字符串结尾的“空字符”的惯用方法,但是这两种方法是有差异的:第一版使得s指向空字符,第二版更加简洁,但是注意最后s指向空字符后面的位置!!!原创 2013-11-06 22:07:34 · 1235 阅读 · 0 评论 -
const修饰指针
const int *p ;//p可修改,p所指向的内容不可修改int const *p;//p可修改,p所指向的内容不可修改int * const p ;//p不可修改,p指向的内容可修改const int *const *p;//p和p指向的内容都不可修改口诀:当const出现在*左边时,指针指向数据为常量,当const出现在*右边,指针原创 2013-11-07 15:48:06 · 684 阅读 · 0 评论