黑马程序员:iOS基础——个人笔记(五)
来源:互联网 发布:软件过程财富库 编辑:程序博客网 时间:2024/05/21 22:59
复杂数据类型:数组、字符串、指针、结构体、枚举
char -128~127 如果存此范围内的整数 省空间 因为它占1个字节
整型数组赋值
int i[5] = {10,11};
int i[5] = {[3] = 10,[4] = 11};
int i[] = {10,11};
数组作为函数参数,可以省略元素个数
strlen函数:计算字符串长度(字符数)需要包含String.h文件。
一个汉字占3个字符数
查看数组是否含有某个字符
while(str[++i] != c && str[i] !='\0');
return str[i] !='\0';
%zd代表unsigned long
任何指针占8个字节
定义字符串2种方式:
利用数组 可修改
利用指针 不可修改char *s = "abc";
内存分为五块:
1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
4、文字常量区—常量字符串就是放在这里的。程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
返回指针的函数
指向函数的指针
void (*p)( ) :左边void代表没有返回值,(*p)代表指的是函数,右边()代表函数没有形参。
函数名代表函数地址
利用指针调用函数 p();或(*p)();
结构体定义
struct person{ };
赋值:struct person p={.height = 1.78, .name = "abc"};
结构体分配内存
补齐算法(对齐算法):长度是最大类型长度的倍数。
利用指针访问结构体成员
(*p).age == p ——> age
结构体:嵌套定义
枚举(enum):是一个被命名的整型常数的集合,枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。
预处理指令(3个),在代码翻译成0和1之前执行。
1)宏定义
#define宏名(一般大写或以k开头小写) 值
#undef宏名 //取消宏定义
带参数的宏:#definesum(a,b) ((a)+(b))
宏的值只负责替换代码不做运算;
带参数的宏定义比函数的效率高。
2)条件编译
概念:有条件的编译一段代码
用法:
#if条件1
...code1...
#elif条件2
...code2...
#else
...code3...
#endif
和宏结合使用
#ifdefine(max)等于#ifdef
3)文件包含
a、<>表示系统自带的文件,""表示自定义的文件
b、不允许循环包含
typedef:定义类型的别名
extern:外部函数的定义和声明,默认可省略;外部面两;
static:内部函数的定义和声明;内部变量;
static修饰局部变量,延长生命周期至程序结束,没有改变作用域
- 黑马程序员:iOS基础——个人笔记(五)
- 黑马程序员:iOS基础——个人笔记(一)
- 黑马程序员:iOS基础——个人笔记(二)
- 黑马程序员:iOS基础——个人笔记(三)
- 黑马程序员:iOS基础——个人笔记(四)
- 黑马程序员:iOS基础——个人笔记(六)
- 黑马程序员:iOS基础——个人笔记(七)
- 黑马程序员:iOS基础——个人笔记(八)
- 黑马程序员:iOS基础——个人笔记(九)
- 黑马程序员:iOS基础——个人笔记(十)
- 黑马程序员——Java基础学习笔记(五)
- 黑马程序员-iOS基础-C语言基础(五)指针
- 黑马程序员-iOS基础-Objective-C基础(五)
- 黑马程序员——Java基础视频笔记(五):集合详解
- 黑马程序员——IOS学习笔记(Object-c基础)
- 黑马程序员——Struts个人学习笔记(一)
- 黑马程序员_Java基础篇(五)——反射
- 黑马程序员——Java基础--集合(五)
- Matlab中 pdist 函数详解(各种距离的生成)
- hdu 4747 线段树
- 关于 struts+ajax+jquery 验证用户名是否重复
- ZOJ_3593_One person game_扩展欧几里德
- C++中const的实现机制深入分析
- 黑马程序员:iOS基础——个人笔记(五)
- C++函数中那些不可以被声明为虚函数的函数
- org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cg
- 仿手机QQ列表支持下拉,上滑,滑动删除
- 《C++编程》第二章第19题
- 音乐推荐系统
- MVC框架-路由分发总结
- 联想,逆向(创新技法6)
- POJ 题目3694 Network(tarjan,LCA,求桥)