《C和指针》读书笔记(二)
2016-03-28 15:07
239 查看
C语言中,仅有4种基本数据类型-整形,浮点型,指针和聚合类型(数组和结构)
short int 至少16位,long int 至少32位
头文件 limits.h说明了各种不同的整型类型的特点
常量不能修改但是可以通过
char *message="Hello World" < => char *message; message="Hello World";
int const a;<=> const int a;
[align=left]//看上去是将初始值赋给*message,其实是赋值给message本身[/align]
char *message = "Hello World" ;
typedef char *ptr_to_char;
ptr_to_char a; //a是一个指向字符的指针
//typedef 与#define相比,typedef可以处理指针类型的声明
[align=left]
[/align]
const int a1 = 0;
int const a2 = 1;
[align=left]
[/align]
int *pi;//pi->指向整形的指针
int const *pci;//指向整形常量的指针,可修改指针的值,不可以修改它所指向的值
int *const cpi=0;//指向整形的常量指针,此时指针是常量,它的值无法修改,可修改它指向的整形值
[align=left]
[/align]
//左定值(指针指向的值不可修改),右定向(指针不可修改)
int a = 248, b = 4;
int const c = 21;
const int *d = &a;
int * const e = &b;
int const *
const f = &a;
//c = 32;
//*d = 43;
//e = &a;
//f = 0x321f;
//d = &b;
[align=left]
[/align]
[align=left]
[/align]
[align=left] 四种不同的作用域:文件作用域,函数作用域,代码块作用域,原型作用域[/align]
[align=left] 代码块作用域: 一对花括号之间{},内层代码块作用域会隐藏同名的外层的标识符[/align]
[align=left] 文件作用域: 任何在代码块作用域之外的都成为文件作用域[/align]
[align=left] 原型作用域:只适用于函数原型声明的参数名[/align]
[align=left] 函数作用域:只适用于语句标签,语句标签用于goto语句(一个函数中,所有语句标签必须一致),尽量不用[/align]
[align=left]
[/align]
[align=left]
[/align]
连接属性:external(外部)
internal (内部) none(无)
[align=left] [/align]
[align=left] 函数的形参不能声明为static,因为实参要在堆栈中传递给函数,用于支持递归[/align]
[align=left]
[/align]
[align=left] 具有external连接属性的实体在所有文件的所有实体中,都可以访问,只要变量并非声明于代码块或[/align]
[align=left] 函数定义内部,他在缺省的情况下连接属性都是external,[/align]
具有external连接属性的实体总有静态存储类型
short int 至少16位,long int 至少32位
头文件 limits.h说明了各种不同的整型类型的特点
常量不能修改但是可以通过
char *message="Hello World" < => char *message; message="Hello World";
int const a;<=> const int a;
[align=left]//看上去是将初始值赋给*message,其实是赋值给message本身[/align]
char *message = "Hello World" ;
typedef char *ptr_to_char;
ptr_to_char a; //a是一个指向字符的指针
//typedef 与#define相比,typedef可以处理指针类型的声明
[align=left]
[/align]
const int a1 = 0;
int const a2 = 1;
[align=left]
[/align]
int *pi;//pi->指向整形的指针
int const *pci;//指向整形常量的指针,可修改指针的值,不可以修改它所指向的值
int *const cpi=0;//指向整形的常量指针,此时指针是常量,它的值无法修改,可修改它指向的整形值
[align=left]
[/align]
//左定值(指针指向的值不可修改),右定向(指针不可修改)
int a = 248, b = 4;
int const c = 21;
const int *d = &a;
int * const e = &b;
int const *
const f = &a;
//c = 32;
//*d = 43;
//e = &a;
//f = 0x321f;
//d = &b;
[align=left]
[/align]
[align=left]
[/align]
[align=left] 四种不同的作用域:文件作用域,函数作用域,代码块作用域,原型作用域[/align]
[align=left] 代码块作用域: 一对花括号之间{},内层代码块作用域会隐藏同名的外层的标识符[/align]
[align=left] 文件作用域: 任何在代码块作用域之外的都成为文件作用域[/align]
[align=left] 原型作用域:只适用于函数原型声明的参数名[/align]
[align=left] 函数作用域:只适用于语句标签,语句标签用于goto语句(一个函数中,所有语句标签必须一致),尽量不用[/align]
[align=left]
[/align]
[align=left]
[/align]
连接属性:external(外部)
internal (内部) none(无)
[align=left] [/align]
[align=left] 函数的形参不能声明为static,因为实参要在堆栈中传递给函数,用于支持递归[/align]
[align=left]
[/align]
[align=left] 具有external连接属性的实体在所有文件的所有实体中,都可以访问,只要变量并非声明于代码块或[/align]
[align=left] 函数定义内部,他在缺省的情况下连接属性都是external,[/align]
具有external连接属性的实体总有静态存储类型
相关文章推荐
- android 编程小技巧(持续中)
- java_juc_AQS
- 视音频编解码技术零基础学习方法
- XZ压缩最新压缩率之王
- 自定义View(一)
- 移动应用开发必备工具盘点
- 通过SQL Server代理启动Windows服务
- 我们怎么获取数据库中的值或者在数据库中添加值那???
- Python 多线程7-线程通信
- 【架构】OpenResty相关资料
- angularjs 表单验证
- HTML文字与段落标记
- 微信签名生成
- js容易犯错的知识点
- 深入浅出MySQL 数据库开发、优化与管理维护(第2版) -- 读书笔记 -- 基础篇
- K-NN算法的C语言实现
- SpringMVC深度探险
- Java中List与数组互相转化
- C++实现的委托机制
- java 观察者模式