《指针的艺术》读书笔记

 
 

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

网盘下载: 微盘
文件格式: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页(命令行自变量篇),这个明显表示不同的意思,怎么就归纳到一起了?

 

 
 
推荐
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值