C/C++语言
刺客阿瑞
把时髦的技术挂在嘴上,不如把过时的技术记在心里。
展开
-
auto,register,static分析
C语言变量都有自己的属性,在定义变量时可加上“属性”关键字。 1.auto (1)auto即C语言局部变量的默认属性(栈上分配空间) (2)编译器默认的所有局部变量都是auto的 2.static static关键字指明变量的“静态”属性,同时static有“作用于限定符”的意义。 (1)static修饰的局部变量存储在程序静态区 (2)static的另一个意义就是文原创 2013-11-07 15:40:57 · 804 阅读 · 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 · 4516 阅读 · 0 评论 -
字符串面量指针的只读性质
#include <>原创 2013-11-06 21:27:49 · 1434 阅读 · 0 评论 -
内存管理及常见的问题
内存分配的方式: (1)从静态存储区域分配 内存在程序编译的时候就已经分配好,在程序运行期间都存在,例如全局变量,static变量。 (2)栈上创建 执行函数时,函数内部变量存储单元都在栈上创建,函数结束时自动释放,栈内存分配运算符内置于处理器指令集,效率高,但分配内存有限。 (3)堆上分配 也称为动态内存分配,程序在运行时用malloc或new来申请任意多的内存,程序员自己负责在何时原创 2013-11-06 23:12:07 · 928 阅读 · 0 评论 -
字符数组和字符指针
有: char date[] = "June 14" ; char *date = "June 14" ; 正因为有了数组和指针之间的紧密关系,才使得上面的两个声明的date可作为字符串,然而,上面的两个date不可以互换,差异: 1.在声明数组时,就像任意数组元素一样,可修改存放在date中的字符 ; 在声明为指针时,date指向字符串面量(字符串常量),前面的文章已原创 2013-11-06 22:01:05 · 831 阅读 · 0 评论 -
关于寻找字符串结尾的方法讨论
这里,提供两种搜索字符串的结尾的方法: 【方法一】惯用法: while(*s) s++; 【方法二】惯用法: while(*s++) ; 这两种方法都是寻找字符串结尾的“空字符”的惯用方法,但是这两种方法是有差异的:第一版使得s指向空字符,第二版更加简洁,但是注意最后s指向空字符后面的位置!!!原创 2013-11-06 22:07:34 · 1187 阅读 · 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 · 661 阅读 · 0 评论