chenglong7997

chapter 2(bugs)

知识点:

1.malloc(strlen(str)) 几乎肯定是错误的。应该是 malloc(strlen(str)+1)。

2.NUL用于结束一个ACSII字符串。NULL表示什么也不指向。空指针。

3.switch中default写成defau1t的错误。(能够通过编译)。
break会跳出最近的那层循环,或者switch语句

4.ANSI C 相邻的字符串常量会被自动合并成一个字符串的约定。
printf("a second favorite children's book"
"is 'yitiantulong' "
);
编译时候会自动合并,除了最后字符串外,每个字符串结尾的‘\0’会被删除。
bug:
char *resourse[]={
"big disk",
"color"   //color 之后没有写逗号,那么会和mouse连接在一起。
"mouse",
};

5.代码第一次执行时候行为,与以后执行的不同。
initializer( char *str)
{
    static char separator='';
    printf(" %c %s \n", separator, str);
    separator=',';
}
非常简便,比起其他的方法。

6.extern用于函数定义,表示全局可见。(属于冗余)
extern用于标量,表示在其他地方定义。

7.x=f() * g();
f() 与个g() 调动顺序不确定。

8.空格
\newline 与 \ newline意义不同。

9.调用函数分配内存来保存函数的返回值。可以返回字符串常量的指针,静态数组的指针,动态内存指针。

posted on 2012-06-21 04:26 Snape 阅读(323) 评论(0)  编辑 收藏 引用 所属分类: Expert_C_programming


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

my

搜索

最新评论

阅读排行榜

评论排行榜