如果你学过C语言,会觉得很轻松,基本和C语言一样的,和java语言差别也不是很大,但是输出的时候就不一样了。C语言要比java灵活的多,有些写法,只学过java的人一时半会怕是很难接受(这里引用王者荣耀中姜子牙说的话:不刷新世界观,怎么可能成长),想学什么也要接受,毕竟我也用java写了好久程序了。其实挺讨厌这些数据类型的,一下子这么多,用的时候搜就好了。
基本数据类型:
OC中有如下基本数据类型:
整数类型:
char :字符型 short:短整型 int:整型 long:长整型 long long 长整型
signed:有符号类型变量 unsigned:无符号类型变量(这个只能修饰上面的char short int long 和long long)
浮点类型:
double:双精度变量 float:浮点型变量
其他类型:
id:通用的指针类型
enum:枚举类型
struct:结构体类型
union:共用体(联合)数据类型
void:函数无返回值或无参
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据类型格式化符:
整型 int %d %i 短整型 short int %hd %hi 长类型 long int %ld %li
无符号短整型 unsigned int %u 无短整型 unsigned short %hu 无符号长整型 unsigned long %lu
浮点型 float %f 双精度型 double %f 长双精度型 long double %lf
字符型 char %c
字符串 %s 十六进制 %x 八进制 %o
随手写的示例代码:
//
// main.m
// HelloWorld
//
// Created by Moluth on 17/4/5.
// Copyright (c) 2017年 Moluth. All rights reserved.
//
//头文件。里面包含了好多东西,可以算是一个基本框架吧
#import <Foundation/Foundation.h>
//main函数,程序入口 argc 参数个数,argv 所有参数字符串类型
int main(int argc, const char * argv[]) {
//从名字上来看,这个代码块应该可以自动释放内存
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
int a,b=10,c;//声明变量,c没有赋值,默认值是0,在c语言中变量不赋值,有些编译器编译后结果不可预知,有些是0,不建议不赋值使用
a=b+5;//赋值语句
NSLog(@"a=%d b=%d c=%d\n",a,b,c);//输出:a=15 b=10 c=0 %d %c %s %f %lf %ld %lld %o %x
//
unsigned int ua,ub,uc=123u;//u代表无符号数
long long la,lb,lc=123ll;
float fa,fb,fc=12.0f;
double da,db,dc;
char cc='a';//字符类型
cc='\n';//换行符
a=a+cc;
bool bb=0;//bb=false; 布尔类型,值只有true和false
bb=true;
short sa,sb,sc;
const int cia=18,cid;
a=0x16f0;//十六进制
NSLog(@"a=%x a=%d",a,a);//a=16f0 a=5872
a=0123;//八进制
NSLog(@"a=%o a=%d",a,a);//a=123 a=83
}
return 0;//返回值
}