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的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
随机推荐
- Qtp常见问题
(1)Qtp不能识别对象 插件加载错误 IE内未加载BHOManager加载项
- ajax简单应用
var xmlhttp;if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new ...
- Can I Win
In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...
- bootstrap - 响应式标题栏
先要拆分: .navbar 先变成相对定位 设置最小高度为50px: 设置底部边距为20px 然后设置一个 透明边框! 边框倒角 4px //@media (min-width:768px) - ...
- windows耳机没有声音
问题描述: 扬声器有声音,耳机没有声音,重装了驱动也没有用,系统配置.耳机也没有问题,具体原因我不太清楚,参考网址:http://forum.ubuntu.org.cn/viewtopic.php?f ...
- iOS10 远程推送服务器所需证书以及应用授权文件配置
推送证书制作步骤(目的:导出服务器需要的p12证书) 第一步: 打开Mac系统的"钥匙串访问"-"证书助理"-"从证书颁发机构请求证书" 取 ...
- gulp整理
gulp基于node 1.全局安装gulp: $ npm install --global gulp 2.前往项目目录,然后安装作为项目的开发依赖(devDependencies): $ npm in ...
- Qt在ui中使用代码添加新的控件
QLabel* label = new QLabel(ui->centralWidget);
- tableview最后一行显示不全
最后一行显示不全是因为表格的高度大于了控制view的高度,减小表格的高度小于的等于控制的view的高度即可
- MATLAB曲面插值及交叉验证
在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点.插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值.曲面插值是对三维数据进行离 ...