内存分五块:
栈 (Stack) - 小,快 - 临时变量或者局部变量 - 值类型的对象
堆 (Heap) - 大, 慢 - 对象 - 引用类型的对象
数据段 - 全局变量
只读数据段 - 全局常亮
代码段 - 方法/ 函数
指针 (内存里面的一个的地址)
1.能够实现跨栈取数据
2.星号表示不是Int内型而是Int指针
用途2;申请堆空间
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;//这的星号是指针运算,把地址中的值取出来
*a = *b;
*b = temp;
}
int main(int argc, const char * argv[]) {
int x = 10, y = 20;
swap(&x ,&y); // &取地址运算 - 得到变量或常量的地址
printf("x = %d, y = %d\n",x ,y);
int *z = malloc(sizeof(int) * 100000);
if (z != NULL) {
printf("申请到了 ");
- 使用指针一定要申请内存,申请内存之后一定要查看是否申请成功。内存用完之后一定要去释放。免得造成内存泄漏.
if (z != NULL){
free(z);
z = NULL;
}
}else {
printf("没有申请到");
}
return 0;
}
- 使用指针一定要申请内存,申请内存之后一定要查看是否申请成功。内存用完之后一定要去释放。免得造成内存泄漏.
if (z != NULL){
free(z);
z = NULL;
}
指向函数的指针
*fp
Typedef
意味Swift中的泛型.例如
typedef T (*op) (T, T);
写出 通用性更强的代码