1. 间接(indirection)
        1.1 变量和间接(使用变量来代替一些数字)
        1.2 使用文件名的间接
                const  表示一个变量不允许被改变
                    const int nValue; //nValue是const
                    const char *pContent; //*pContent是const, pContent可变
                    const char* const pContent; //pContent和*pContent都是const
                strlen(String value);  // 返回value字符串的长度
                如下面一个例子,可由非专业人员书写文件,这就是间接    ,但是路径为决定路径,不是太理想
                    FILE *worldFile = fopen("/tmp/words.txt","r"); // 打开文件并读取文件内容,其中tmp为Unix临时目录
                    char word[100];
                    while(fgets(word , 100 , wordFile)){   //  fgets()从文件中读取一行文本并将其放到word中
                        word[strlen[word]-1] = '\0';  // fgets()调用会保留分开每一行的换行符,我们不需要,如果留下他,会增加一个字符,所以改为\0
                        NSLog(@"%s is %d characters long",word,strlen(word)); // 打印信息
                    }    
                        fclose(wordFile);  // 关闭文件

    indirection(间接)  -->  不在代码中直接使用某个值,而是使用指向该值的指针

    变量与间接 --> for(int i = 1 ;i< 5 ;i++) 是错误的 ,必须在for循环之前就声明变量 int i;for(i =1;i<5;i++)

    const关键字:表示声明一个常量,其值不可以改变 (C中的关键词)

    使用文件名的间接 --> %d 格式说明符取strlen()函数的整数值,此函数计算字符串的长度,并输出单次本身及其长度  %s 因为是C字符串数组
    
        FILE *wordFile = fopen("/tmp/words.txt","r");
        char word[100];
        while(fgets(word,100,wordFile)){
            word[strlen(word)-1] = '\0';
            NSLog(@"%s is %d characters long",word,strlen(word));
        }
        fclose(wordFile);
            首先fopen()打开words.txt 文件并读取文件内容,然后,fgets()从文件中读取一行并将其放到word中。
            fgets()调用会保留分开每一行的换行符,但是我们不需要,因为留下他,换行符会被记为单词中的一个字符,为了解决这个问题,我们将换行符替换为0,表示字符串的结束,
            最后使用NSLog()输出单次以及长度
  
    typedef
  
        typedef是C中的关键字,它的主要作用是给一个数据类型定义一个新的名称,这些类型报告内部数据类型,比如int,char 还有自定义类型struct,enum等。
      typedef一般有两个作用:(1) 给某种类型顶一个定义比较容易记的名字,相当于别名;(2)简化较为复杂的类型声明。
  
  方括号的其他意义:
        它们用于通知某个对象该做什么。在方括号中,第一项是对象,其余部分是你需要对象执行的操作。

  

  输出一个字符
        putchar(c); // put character(给字符的缩写)

  输入一个字符
        getchar();  //  只能接收一个字符,如果输入多个字符,就要使用多个getchar() 函数
  

Object-C 1.0 第三章:面向对象编程基础知识(OOP)的更多相关文章

  1. Objective-C 基础教程第三章,面向对象编程基础知

    目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...

  2. Python学习-第三天-面向对象编程基础

    Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的 ...

  3. 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)

    面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...

  4. Python 进阶(三)面向对象编程基础

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkMAAAFGCAIAAADmfgziAAAgAElEQVR4nOx993vT1v7/93/5EEt2Eg

  5. 云笔记项目-补充JS面向对象编程基础知识

    简单介绍: 此部分知识为在做云笔记项目中补充,因为云笔记项目中涉及到前端js,里面写了很多js脚本,用到了创建js属性和方法,在js中直接声明的属性和方法最终都会变成window的对象,即其成为了全局 ...

  6. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  7. 第2章 Python编程基础知识目录

    第2.1节 简单的Python数据类型.变量赋值及输入输出 第2.2节 Python的语句 第2.3节 Python运算符大全 老猿Python,跟老猿学Python! 博客地址:https://bl ...

  8. 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础

    第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...

  9. 进击的Python【第六章】:Python的高级应用(三)面向对象编程

    Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...

随机推荐

  1. 使用KRPano资源分析工具一键下载全景网站切片图

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  2. mac pods 安装

    CocoaPods的安装步骤: 1.先配置Ruby环境: 若已安装Ruby,请升级Ruby环境 sudo gem update --system 若没有安装,则请看下面, 以下代码区域,带有 $ 打头 ...

  3. C语言中的system函数参数及其作用

    函数名: system 功   能: 发出一个DOS命令  用   法: int system(char *command);  system函数已经被收录在标准c库中,可以直接调用 system() ...

  4. 懒加载插件- jquery.lazyload.js

    Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...

  5. Python之路,Day5 - Python基础5

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 一.列表生成器 , 1, 2, 3, 4, 5, 6, 7, 8, 9 ...

  6. centos 安装pip,使用pip安装django

    python版本要2.7.x以上版本,若未安装python执行以下命令安装: wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz ...

  7. Nodejs实现简单的反向代理

    var http = require('http'), httpProxy = require('http-proxy'); // 新建一个代理 Proxy Server 对象 var proxy = ...

  8. SQL添加维护 计划失败

    在sql要求数据库每天自动备份这个是大家都会遇到的问题,我遇到了这个问题如图: 是因为这个服务组件没有安装

  9. C#单例模式的多种写法

    它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个.(<设计模式-基于C#的工程化实现及扩展>,王翔).也就是说,单例模式就是保证在整个应用程序的生命周 ...

  10. [Android Pro] 精确记录和恢复ListView滑动位置

    reference to : http://blog.csdn.net/welovesunflower/article/details/7926512 工作中遇到一个需求,对ListView某一项操作 ...