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的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
随机推荐
- 用遗传算法GA改进CloudSim自带的资源调度策略
首先理解云计算里,资源调度的含义: 看了很多云计算资源调度和任务调度方面的论文,发现很多情况下这两者的意义是相同的,不知道这两者是同一件事的不同表述还是我没分清吧,任务调度或者资源调度大概就是讲这样一 ...
- nginx配置为windows服务中的坑
网上搜索“nginx 配置为windows服务”,很容易搜索到使用windows server warpper来配置,于是按照网上的方法我从github上的链接下载了1.17版本,前面都很顺利,很容易 ...
- Python语言常见异常错误类型
在运行或编写一个程序时常会遇到错误异常,这时python会给你一个错误提示类名,告诉出现了什么样的问题(Python是面向对象语言,所以程序抛出的异常也是类).能很好的理解这些错误提示类名所代表的意思 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- JDBC的操作总结
JDBC 操作总结 JDBC是一组能够执行SQL语句的API JDBC的操作方式比较单一,简单的分为以下几个流程: 1.通过数据库厂商提供的JDB类库想DriverManager注册数据库驱动 ...
- 表达式求值(noip2015等价表达式)
题目大意 给一个含字母a的表达式,求n个选项中表达式跟一开始那个等价的有哪些 做法 模拟一个多项式显然难以实现那么我们高兴的找一些素数代入表达式,再随便找一个素数做模表达式求值优先级表 - ( ) + ...
- IO边读边写
using (FileStream fs = new FileStream(@"C:\Users\Desktop\lijia1.txt",FileMode.Open)) ...
- Particle System(粒子系统)
粒子系统应用:Unity的粒子系统可以制作烟雾,气流,火焰和各种大气效果. 粒子系统模块介绍: 大部分的属性可以通过曲线控制(见曲线编辑器),颜色属性可以被定义了颜色动画的渐变器控 ...
- 剑指Offer-【面试题04:替换空格】
package com.cxz.question4; /* * 请实现一个函数,把字符串中的每个空格替换成"%20",例如"We are happy.",则输出 ...
- oracle内存粒度
一,什么是内存粒度? When a database instance starts up, the amount of memory allocated is determined by the a ...