美文网首页
C语言基础

C语言基础

作者: Daniel01 | 来源:发表于2016-11-11 11:15 被阅读0次

    内存分五块:

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

    相关文章

      网友评论

          本文标题:C语言基础

          本文链接:https://www.haomeiwen.com/subject/ozffpttx.html