Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81740
  • 博文数量: 17
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-17 21:47
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友
最近访客

分类: C/C++

2008-04-19 10:15:35

c and pointer 读书笔记
(1)
字符串是一串以NUL字节结尾的字符。NUL字节是值字节模式全为0的字
节。NUL == NULL == 0。
数组名做实参时,传给函数的实际上是一个指向数组起始地址的指针
。==〉数组参数以引用形式传递(传址调用)。
 
(2)
if和相关语句的括号关系更紧密。
\100 = 64 =
\x40 = 64 =
\0123 为 '\012'与'3'
\x0123无法存储于一个字符内。
 
(3)
char 7bit
signed/unsigned char 8bit
short int == int 16bit
long int  32bit
 
(4)
C并不存在专门的“赋值语句”。==〉表达式内进行。
break/continue只对最内层的循环起作用。
default可以出现在语句列表的任何位置。

(5)
位操作符
AND(&) 两个位都是1,结果为1。
OR(|) 两个位都是0,结果为0。
XOR(^) 两个位不同,结果为1。
&&/|| 短路求值。
逗号表达式的值是最后那个表达式的值。
寻常算数转换
long double
double
float
unsigned long int
long int
unsigned int
int
复杂表达式求值顺序:操作符优先级,结合性,是否控制执行顺序。
 
(6)
1字节包含8位。
边界对齐。
不能简单地通过检查值的位模式来判断它的类型。
确保指针间接引用前初始化。
指针间接访问操作只能作用于指针类型表达式。
 
(7)
尾部递归可以转换成非递归(迭代)。
可变参数列表。
 
(8)
array[2]与2[array]相等。编译器实现形式无差别。
char message[]= "hello";字符串数组
char *message = "hello";字符串常量
函数参数的多维数组
void func( int (*mat)[10] );
void func( int mat[][10] );
 
(9)
memxxx函数提供了类似字符串函数的能力,但它们可以处理包括NUL字
节在内的任意字节。
strtok从字符串中隔离各个单独的称为标记的部分,并丢弃分隔符。
 
(10)
用标签声明结构体,才是同种类型的结构变量。
结构不能包含类型也是这个结构的成员,但是可以是一个指向这个结
构的指针。
联合变量可以初始化,但初始值必须是联合第一个成员的类型。
 
(11)
内存分配失败。
内存泄露会增加程序体积,导致程序或系统崩溃。

(13)
int f()[]非法,函数只能返回标量值,不能返回数组。
回调函数,用户把一个函数指针作为参数传递给其他函数,后者“回
调”用户的函数。
转换表,数组存放函数指针。

 
阅读(1223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~