ObjC学习(1):注释、标识符和变量

简介: Objective-C(以下简称ObjC)是一门强类型语言,强类型包括了两方面的含义:第一,所有的变量必须先声明,后使用;第二,指定类型的变量只能接收类型与之匹配的值。

Objective-C(以下简称ObjC)是一门强类型语言,强类型包括了两方面的含义:第一,所有的变量必须先声明,后使用;第二,指定类型的变量只能接收类型与之匹配的值。

1.1 注释
程序注释是源代码的一个重要组成部分,对于一份规范的程序源代码而言,注释应该占到源代码的三分之一以上。

ObjC提供了单行注释和多行注释。单行注释就是在程序中注释一行代码,ObjC使用双斜线(//)进行单行注释;多行注释是指一次性将程序中的多行代码注释掉,ObjC使用“/”和“/”将程序中需要注释的内容包含起来,“/”表示注释开始,“/”表示注释结束。

需要注意的是,多行注释不能嵌套。也就是说,在“//”多行注释代码块哪,不能再次使用“//”添加多行注释。

1.2 标识符和变量
1.2.1 分隔符
ObjC里面的分隔符包括:分号(;),花括号({}),方括号([]),圆括号(()),空格,圆点(.)。

1.分号
ObjC使用分号(;)作为语句的分隔,也就是说,每个ObjC语句必须使用分号(;)作为结尾。

ObjC程序允许一行书写多个语句,每个语句之间用分号(;)分隔开来即可;一个语句也可以跨多行,只要在最后结束的地方使用分号(;)结束即可。

但要注意,ObjC语句可以跨越多行书写,但一个变量名和变量的值不能跨越多行。另外,从程序的可读性的角度出发,应该避免在一行书写多个语句。

2.花括号
花括号({})的作用是定义一个代码块。一个代码块指的就是“{”和“}”所包含的一段代码,其在逻辑上是一个整体。

在ObjC中,类的成员变量、方法体部分、条件语句中的条件执行体和循环语句中的循环体等都是放在代码块中的。

3.方括号
方括号([])的主要作用是用于访问数组元素,它通常紧跟数组变量名,在它里面指定希望访问的数组元素的索引。

此外,ObjC的对象调用方法时,通常也需要使用方括号括起来。

4.圆括号
圆括号(())的功能非常的丰富,它可以用在:定义函数、调用函数、强制类型转换等地方。

5.空格
ObjC使用空格分隔一个语句的不同部分。

ObjC源程序可以使用空格来合理缩进代码,从而提供更好的可读性。但是,不能使用空格将一个变量名隔开成为两个或多个,这将导致程序出错。

6.圆点(.)
圆点(.)通常作为对象及其属性之间的分隔符,表明调用某个实例的指定属性。

1.2.2 标识符规则
标识符是用于给程序中变量、类、方法命名的符号。

ObjC的标识符必须以字母、下画线(_)、美元符($)开头,后面可以跟任意数目的字母、数字、下画线和美元符。

ObjC的标识符中不可以包含空格,不能使用ObjC的关键字。ObjC是区分大小写的,也就是说,abc和abC是两个不同的标识符。

总结起来,使用标识符的规则如下:
第一,标识符可以由字母、数字、下画线和美元符组成,但不能以数字开头。

第二,标识符不能完全是ObjC关键字。

第三,标识符不能包含空格。

第四,标识符只能包含美元符,不能包含@、#等其它特殊字符。

1.2.3 ObjC关键字
ObjC中有一些具有特殊用途的单词被称为关键字(keyword),它们是专门为整个ObjC语言系统预留的。当定义标识符的时候,不要让它与关键字重名,否则将引起错误。

ObjC中常用的关键字包括:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。

1.3 示例程序
基于本文中所学习的内容,示例程序如下:

//
//  main.m
//  ex1
//
//  Created by zhouzxi on 7/10/16.
//  Copyright © 2016 Zhou Zhaoxiong. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int iInt1, iInt2, iInt3;   // 定义三个整型变量,中间使用逗号分隔
        iInt1 = 2;   // 对iInt1变量赋值为2
        iInt2 = 7;   // 对iInt2变量赋值为7
        iInt3 = iInt2 / (iInt1+1);  // 计算iInt3变量的值

        NSLog(@"iInt1=%d, iInt2=%d, iInt3=%d", iInt1, iInt2, iInt3);   // 打印三个变量的值

        /*
        // 下面两行代码被注释掉了
        NSLog(@"Hello, World!");
        NSLog(@"Hello, World!");
        */

    }
    return 0;
}
目录
相关文章
|
10天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
26 5
|
2月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
56 3
|
5月前
|
Python
python语法错误变量未定义
【7月更文挑战第9天】
84 1
|
7月前
|
存储 程序员 编译器
C++注释、变量、常量、关键字、标识符、输入输出
C++注释、变量、常量、关键字、标识符、输入输出
|
7月前
|
编译器 C++
C++:编译器对被const修饰变量的处理行为(替换)
C++:编译器对被const修饰变量的处理行为(替换)
49 0
|
7月前
|
存储 Oracle Java
【JavaSE】注释\标识符\关键字\字面常量\数据类型与变量
【JavaSE】注释\标识符\关键字\字面常量\数据类型与变量
43 0
|
7月前
|
C语言 C++ 开发者
C/C++陷阱——变量名和函数名的冲突问题
C/C++陷阱——变量名和函数名的冲突问题
|
7月前
|
存储 算法 程序员
【新手解答7】深入探索 C 语言:代码缩进 + 变量作用域、静态变量 + 变量名和函数名重名
【新手解答7】深入探索 C 语言:代码缩进 + 变量作用域、静态变量 + 变量名和函数名重名
81 0
|
7月前
|
存储 Java 编译器
C 语言注释和变量详解
C语言中可以使用注释来解释代码并使其更具可读性。它还可以在测试替代代码时防止执行。
115 0
调用windowsAPI出现 未声明的标识符 ,但是实际声明了还是报错
调用windowsAPI出现 未声明的标识符 ,但是实际声明了还是报错
调用windowsAPI出现 未声明的标识符 ,但是实际声明了还是报错