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

     
     
    推荐
     
     
     
    喜欢编程
  • 相关阅读:
    IIS与ASP.NET管道
    20个非常棒的jQuery倒计时脚本
    GitHub托管BootStrap资源汇总(持续更新中…)
    推荐13款优秀的Twitter Bootstrap JavaScript插件
    C#程序开发中经常遇到的10条实用的代码
    20款jQuery 的音频和视频插件
    给 C# 开发者的代码审查清单
    Bootstrap 3.0正式版发布!
    为你带来灵感的 20 个 HTML5/CSS3 模板
    通过一个模拟程序让你明白ASP.NET MVC是如何运行的
  • 原文地址:https://www.cnblogs.com/baochuan/p/2774334.html
Copyright © 2011-2022 走看看