Object-C 1.0 第三章:面向对象编程基础知识(OOP)
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)的更多相关文章
- Objective-C 基础教程第三章,面向对象编程基础知
目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...
- Python学习-第三天-面向对象编程基础
Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的 ...
- 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)
面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...
- Python 进阶(三)面向对象编程基础
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkMAAAFGCAIAAADmfgziAAAgAElEQVR4nOx993vT1v7/93/5EEt2Eg
- 云笔记项目-补充JS面向对象编程基础知识
简单介绍: 此部分知识为在做云笔记项目中补充,因为云笔记项目中涉及到前端js,里面写了很多js脚本,用到了创建js属性和方法,在js中直接声明的属性和方法最终都会变成window的对象,即其成为了全局 ...
- 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出
第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...
- 第2章 Python编程基础知识目录
第2.1节 简单的Python数据类型.变量赋值及输入输出 第2.2节 Python的语句 第2.3节 Python运算符大全 老猿Python,跟老猿学Python! 博客地址:https://bl ...
- 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...
- 进击的Python【第六章】:Python的高级应用(三)面向对象编程
Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
随机推荐
- WinForm各种API---时时更新
好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3 0 0 本文原文地址:http://www.cnblogs.com/hqxc/p/6160685.html 徐淳 [D ...
- [转]加速Android Studio/Gradle构建
加速Android Studio/Gradle构建 android android studio gradle 已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多, ...
- 得静下心来看python了。
陆陆续续看了些python爬虫的相关知识.今天找到了这篇博客不错就看这个,明天看到那个又很好又跑去看那个. 来来回回耽误不少时间.接下来不能再这样了,老老实实就看xlzd.me博客和Python实战: ...
- struts2 No result defined for action XXX and result input
这种错误的原因一般是页面的属性和action里的属性个数.名称.类型不一致造成的 困扰了我一下午的问题,原来是表单中有两个input-text的name属性重复了,然后接受参数的时候就出现了这个错误 ...
- express中的路由
一.读取静态文件 基本代码: "use strict"; const express = require("express"); let app = expre ...
- webstorm添加*.vue文件代码提醒支持webstorm支持es6vue里支持es6写法
本文转自:http://www.lred.me/2016/01/07/webstorm%E6%B7%BB%E5%8A%A0-vue%E6%96%87%E4%BB%B6%E6%94%AF%E6%8C%8 ...
- iOS开发常用校验
一.身份证号码校验 + (BOOL)cheakIdentityCard: (NSString *)value { value = [value stringByTrimmingCharactersIn ...
- spring-boot 文件上传获取不到File原因,MultipartHttpServletRequest.getFiles为空
以下是spring-boot的处理方式,其他可参考处理具体问题:1.CommonsMultipartResolver解析不到request中的文件流2.Controller方法参数MultipartH ...
- 关于ZedGraph
http://www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET
- SVN数据仓库迁移
1.在新服务器上部署环境 yum -y install subversion 2.备份原服务器数据仓库 svnadmin dump /home/myrepos >/data/svn_dump s ...