现在的位置: 首页 > 综合 > 正文

《指针的艺术》读书笔记

2012年09月23日 ⁄ 综合 ⁄ 共 1076字 ⁄ 字号 评论关闭
 

 

 
希望您能把指针看似天上最灿烂的星星(*)
 

网盘下载:微盘
文件格式:Xmind 制作软件:Xmind Pro
 
指针的内涵
  
  指针变量用于存储变量地址。由于我们使用*作用于指针变量,所以作者喜欢把指针当成星星。
  作者把指针比喻成钥匙(信箱的钥匙),而把变量值当成信件。
 
数组的内涵
 
  数组名称表示数组第一个元素的地址。
  由于数组变量存储第一个元素的地址,所以数组变量也是一个指针变量。但是不同的是,不能对数组变量进行自增(++)或自减(--)运算,所以我们管数组变量叫做指针常量
 
指针操作符
 
  我们可以使用[]或*取指针指向变量里的值。
  指针(*)和数组([])是互通的。
 
字符串常用操作>
 
  字符串长度:strlen(str1);
  字符串复制:strcpy(str1接收者, str2给予者)
        strncpy(str1接收者, str2给予者, n复制个数)
  字符串连接:strcat(dest被连接者, source连接者)
        strncat(dest, source,n)
  字符串比较:strcmp(str1, str2)
        str1 == str2 地址比较,用于判断str1和str2是否指向同一个变量。
 
结构体
 
   通过指针访问成员使用->或(*).
 
结构体是派生的数据类型。
结构体是由相同或不同数据类型组成的集合体。
 
常用代码
   
定义结构体    
typedef struct _student{
    char name[10];
    int score;
} student;

分配内存

student *ptr = (student *) malloc ( sizeof(student) );

 

文件操作

int main(){
    char id[10];
    FILE *fptr;
    if((fptr = fopen("test.dat", "a+")) == NULL){
        printf("无法打开test.dat");
        return 1;
    }   

    do{ 
        printf("请输入id\n");
        scanf("%s", id);
        fprintf(fptr, "%s\n", id);
    }while(strcmp(id, "-1") != 0); 

    fclose(fptr);
    return 0;
}

 

书中错误

1、书中第一篇第4节(11页)是这样描述结构体的(见下图)。——实际上结构体是相同或不同数据类型组成的。

2、(12页)是不是我理解上的错误,从这句话我误认为结构体成员在内存中是相邻的。——但实际上不是。

3、53页(命令行自变量篇),这个明显表示不同的意思,怎么就归纳到一起了?

 

 
 
推荐
 
 
 

抱歉!评论已关闭.