六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 88|回复: 0

c与指针读书笔记01

[复制链接]

升级  4.67%

15

主题

15

主题

15

主题

秀才

Rank: 2

积分
57
 楼主| 发表于 2013-2-5 01:22:50 | 显示全部楼层 |阅读模式
长整形至少应该和整形一样长,而整形至少应该和短整形一样长.
常量指针就是指向常量的指针,指针所指向的地址的内容是不可修改的.
const int *p=&a;
指针常量就是是指针的常量,它是不可改变地址的指针,但是可以对它所指向的内容进行修改。
int a; int * const p=&a;
四种作用域,文件作用域,函数作用域,原型作用域,代码块作用域

链接属性:
internal,external,none

static关键字
只能将internal属性改成external属性

extern关键字
在首次定义时,可设置变量为external属性,但如果这变量已具有链接属性,则不能更改其链接属性

存储类型
有三个地方可以存储,普通内存,运行时堆栈,硬件寄存器
代码块之外申明的变量总是存储于静态内存中,也就是不属于堆栈的内存。普通内存。这类变量成为static变量
在代码块之内申明的变量的缺省存储类型是自动的。也就是说它存储于堆栈中。称之为auto变量。在程序执行到申明自动变量的时候,自动变量才被创建。当程序的执行离开该代码快,自动变量则被销毁。
在代码块内部申明的变量,如果给它加上关键字static.则可以使它的存储类型由auto转变为static,具有static存储类型的变量在整个程序执行过程中一直存在,而不仅仅是在申明它的代码快的执行时存在.
关键字register可以用于自动变量的申明,提示它们应该存储在机器的硬件寄存器而不是内存中。这类变量称为寄存器变量
但编译器并不一定要理睬register关键字,如果有太多的变量被申明为register.它只选取几个实际存储于寄存器中,其余的就按照普通变量处理

机器不向你提供寄存器的地址

自动变量和静态变量的初始化存在区别。静态变量的初始化是原生的。自动变量的初始化是由编译器插入一条隐式的赋值语句
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表