C语言基础

2016-11-11  本文已影响0人  Daniel01

内存分五块:

栈 (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);
写出 通用性更强的代码
上一篇 下一篇

猜你喜欢

热点阅读