本文章接续上一篇文章(http://t.csdn.cn/qVjdf)
附加与上一篇的“关键字”
register 建议存放寄存器(寄存器用于放常用变量(运行快)来提高效率)
放到变量前面用于建议把该变量放在寄存器里面(但是只是建议,会不会放到寄存器里面要看编译器自身) 但是现在的编译器即使你不写“建议”,他也会放到自动把一些变量放到寄存器里面
拓展
typedef重命名关键字 如type int a即为int重命名为a d=0认定整形变量d
static静态
修饰局部变量 ; 可以使变量“长生”(生命周期)出作用域不消除,但是只能在本作用域使用
修饰全局变量;static使该变量只能在自己所在的源文件使用 (全局变量可以全局使用但是要用extern(链接),但是有了static后 只能在自己所在的源文件使用,即缩小范围)
修饰函数同上;
拓展 一般内存分为三个部分
栈区;局部变量,临时函数参数存放地点(总结就是刚输入的东西而且·用完就销毁的)
堆区;动态内存分布(动态分配内存_百度百科 (baidu.com))
静态区;全局变量和某些不会消除的局部变量(放到静态区的变量到最后程序结束才会)
define
定义的常量#define m 400;m定义常量为400;
定义宏(有参数)(类似与函数 但是只能用于简单的并且格式不一样 宏用(参数)(内容简单,无return))#define ADD名称(x,y参数)((x)+(y)操作内容)
14指针(就是地址,存在于内存中)
&a代表的是a的地址
int(数据类型必须和a变量的数据类型一样) *pa=&a代表pa存a的地址
*pa=20;解引用操作(就是根据地址先找到变量a再把a赋值改变,但是地址不改变)即改变*pa等于改变变量a(本人觉得二者在使用方面挂等号)
printf(“p\n”,&a)打印的是a变量的所占内存的4个字节的第一个字节;(地址占字节和该表示变量的站字节大小不一样的例如char上(地址)4 (变量)1 )总结;地址变量32位上4字节,64位上8字节
拓展;
1.内存单元和地址用二进制决定(一个单元为1个字节)32位机器32位2^32个字节(单元),64位地址64个地址线(64位)2^64个字节,
2.进制表示形式; 11的十进制11 16进制0xb(16进制 0-9 abcdef) 8进制013
(作者感觉这次写的有点乱,请多担待,)希望大佬们多多指教!!!谢谢