zoukankan      html  css  js  c++  java
  • 《指针的艺术》读书笔记

     
     

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

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

     
     
    推荐
     
     
     
    喜欢编程
  • 相关阅读:
    阿里云盾证书服务助力博客装逼成功
    内容安全策略(CSP)_防御_XSS_攻击的好助手
    Spring-beans架构设计原理
    Httpclient核心架构设计
    第四章 数据类型—字典(dict)、集合(set)
    第三章 数据类型 — 列表(list)、元组(tuple)
    第三章 数据类型 — int、bool 和 str
    第二章 Python基础(二)
    pycharm快捷键
    第二章 Python基础(一)
  • 原文地址:https://www.cnblogs.com/baochuan/p/2774334.html
Copyright © 2011-2022 走看看