首页 > 其他 > 详细

《C和指针》读书笔记

时间:2016-03-13 21:11:32      阅读:159      评论:0      收藏:0      [点我收藏+]

1. 三字母词

    三字母词即用三个字符合起来表示另一个字符,它可以使C环境在某些缺少一些必需字符的字符集上实现。

??( [    ??< {    ??= #
??) ]    ??> }    ??/ ??! |    ??  ^    ??- ~

 

2. 转义字符

\ddd  表示由八进制数ddd的数值所代表的字符
\xddd 表示由十六进制数ddd的数值所代表的字符

 

3. 字面值前/后缀

(1) 在多字节字符常量前面添加L,则它是宽字符常量。如:L‘X‘, L‘e^‘等。

(2) 在整数字面值后面添加L或l,可以使这个整数被解释为long型;添加U或u则用于把数值指定为unsigned型;两者均添加则被解释为unsigned long型。

 

4. 当for/while循环体无事可做时,单独用一行来表示一条空语句是个比较好的做法,这样清晰地表明循环体是空的,不至于使人误会接下来的一条语句才是循环体。

while ((ch = getchar()) != EOF && ch != \n)
    ;  // 单独用一行来表示空语句是种好做法。

 

5. 如果你可以互换地使用指针表达式和下标表达式时,应该使用哪一个?从可读性上看,下标显然更好;从效率上看,下标绝不会比指针更有效率,但指针有时会比下标更有效率。

// use array‘s index
int arr[10], i;
for (i = 0; i < 10; ++i)
    arr[i] = 0; // 每次循环时都要计算i * 4

// use pointer
int arr[10], *ptr;
for (ptr = arr; ptr < arr + 10; ++ptr) // 只需在编译时计算一次1*4,运行时不执行乘法
    *ptr = 0; 

 

6. 字符串查找

char *strchr(char const *str, int ch);  // 寻找字符ch第一次出现的位置
char *strrchr(char const *str, int ch); // 寻找字符ch最后一次出现的位置
char *strpbrk(char const *str, char const *group); // 寻找一组字符中的任意一个第一次出现的位置
char *strstr(char const *s1, char const *s2); // 寻找子字符串s2第一次出现的位置
size_t strspn(char const *str, char const *group); // 寻找字符串前缀
size_t strcspn(char const *str, char const *group ); // 寻找非字符串前缀
char *strtok(char *str, char const *sep); // 分隔并提取字符串

 

7. 字符分类

isspace(char ch); // 空白字符:‘ ‘, ‘\f‘, ‘\n‘,‘\r‘, ‘\t‘, ‘\v‘
isxdigit(ch); // 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F
isalpha(ch); // 字母
isalnum(ch); // 字母或数字
ispunct(ch); // 标点符号,任何不属于数字或字母的可打印符号

 

8. 内存操作

void *memcpy(void *dst, void const *src, size_t len);
void *memmove(void *dst, void const *src, size_t len);
void *memcmp(void const *a, void const *b, size_t len);
void *memchr(void const *a, int ch, size_t len);
void *memset(void *a, int ch, size_t len);

 

《C和指针》读书笔记

原文:http://www.cnblogs.com/wuhualong/p/ReadingNote_Pointers_On_C.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!