| 基础数据类型 | ||
| 类型 | 实例 | NSLog字符 |
| char | 'a'、'\n' | %c |
| short int |
|
%hi、%hx、%ho |
| unsigned short int |
|
%hu、%hx、%ho %hu、%hx、%ho |
| int | 12、-97、0xFFE0、0177 | %i、%x、%o |
| unsigned int | 12u、100U、0XFFu | %u、%x、%o |
| long int | 12L、-200l、0xffffL | %li、%lx、%lo |
| unsigned long int | 12UL、100ul、0xffeeUL | %lu、%lx、%lo |
| long long int | 0xe5e5e5e5LL、500ll | %lli、%llx、%llo |
| unsigned long long int | 12ull、0xffeeULL | %llu、%llx、%llo |
| float | 12.34f、3.1e-5f、0x1.5p10、0x1P-1 | %f、%e、%g、%a |
| double | 12.34、3.1e-5、0x.1p3 | %f、%e、%g、%a |
| long double | 12.34L、3.1e-5l | %Lf、%Le、%Lg |
| id | nil | %p |
| NAN | nan | 表示不是一个数字,这个字符被定义在系统的头文件math.h中 |
| BOOL | YES、NO | b1=YES; b2=NO |
| 关系运算符 | ||
| 运算符 | 含义 | 例子 |
| == | 等于 | count == 10 |
| != | 不等于 | flag != DONE |
| < | 小于 | a < b |
| <= | 小于或等于 | low <= high |
| > | 大于 | points > POINT_MAX |
| >= | 大于或等于 | j >= 0 |
示例一
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
int integerVar = 100;
float floatingVar = 331.79;
double doubleVar = 8.44e+11;
char charVar = 'W';
NSLog(@"integerVar = %i", integerVar);
NSLog(@"floatingVar = %f", floatingVar);
NSLog(@"doubleVar = %e", doubleVar);
NSLog(@"doubleVar = %g", doubleVar);
NSLog(@"charVar = %c", charVar);
}
return 0;
}
运行测试
示例二:计算器类
Calculator.h
#import <Foundation/Foundation.h> @interface Calculator : NSObject // 累加方法 -(void) setAccumulator: (double) value; -(void) clear; -(double) accumulator; // 算术运算 -(void) add: (double) value; -(void) subtract: (double) value; -(void) multiply: (double) value; -(void) divide: (double) value; @end
Calculator.m
#import "Calculator.h"
@implementation Calculator
{
double accumulator;
}
-(void) setAccumulator: (double) value
{
accumulator = value;
}
-(void) clear
{
accumulator = 0;
}
-(double) accumulator
{
return accumulator;
}
-(void) add: (double) value
{
accumulator += value;
}
-(void) subtract: (double) value
{
accumulator -= value;
}
-(void) multiply: (double) value
{
accumulator *= value;
}
-(void) divide: (double) value
{
accumulator /= value;
}
@end
main.m
//<>导入系统文件
//""导入本地文件(自己创建的.h)
#import <Foundation/Foundation.h>
#import "Calculator.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Calculator *deskCalc = [[Calculator alloc] init];
[deskCalc setAccumulator: 100.0];
[deskCalc add: 200.];
[deskCalc divide: 15.0];
[deskCalc subtract: 10.0];
[deskCalc multiply: 5];
NSLog(@"The result is %g", [deskCalc accumulator]);
}
return 0;
}
运行测试
示例三:类型转换
#import <Foundation/Foundation.h>
#import "Calculator.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
float f1 = 123.125, f2;
int i1, i2 = -150;
i1 = f1; // 浮点数到整数的转换
NSLog(@"%f assigned to an int produces %i", f1, i1);
f1 = i2; // 整数到浮点数的转换
NSLog(@"%i assigned to a float produces %f", i2, f1);
f1 = i2 / 100; //整数除以整数
NSLog(@"%i divided by 100 produces %f", i2, f1);
f2 = i2 / 100.0; // 整数除以浮点数
NSLog(@"%i divided by 100.0 produces %f", i2, f2);
f2 = (float) i2 / 100; //类型强制转换运算符
NSLog(@"(float) %i divided by 100 produces %f", i2, f2);
//类型转换运算符通常用于将一般id类型的对象转换成特定类的对象。
//将id变量myNumber的值强制类型转换成一个Calculator对象,转换结果赋给变量myCalculator
id myNumber;
Calculator *myCalculator;
myCalculator = (Calculator *) myNumber;
NSLog(@"myNumber %p", myCalculator);
}
return 0;
}
运行测试