美文网首页
二、C语言基础

二、C语言基础

作者: 緦菍亭芷 | 来源:发表于2020-04-27 21:59 被阅读0次

A、指针

指针的概念:指针变量 和 指针 的区别 ?
答:指针变量是指针的标记,也可以通过指针变量的标记操作指针内存地址
指针是具体所指向的内存地址
int * p = 内存地址; p==指针变量 指针==内存地址

# 尽量使用明确类型
    int32_t age = 99;
    printf("age=%d, int32_t-size=%d\n", age, sizeof(age));

    int64_t age2 = 100;
    printf("age2=%d, int64_t-size=%d\n", age2, sizeof(age2));

    int8_t age3 = 101;
    printf("age3=%d, int8_t-size=%d\n", age3, sizeof(age3));

    int16_t age4 = 102;
    printf("age4=%d, int16_t-size=%d\n", age4, sizeof(age4));
1.指针的定义(*:定义指针)
    int* p;
    int * p2;
    int *p3;
2.指针的使用(&:取地址符号)
    int value01 = 5546;
    // 定义一级指针 *指针名称
    int *z = &value01; // 把value01的内存地址获取到,&:取地址符号
    // 输出指针对应的值 * 取出指针内存地址对应的值=5546
    printf("输出value01的值:%d\n", *z);
3.多级指针
    int value01 = 999;
    int *z01 = &value01;
    int **z02 = &z01; // 取出1级指针的内存地址
    int ***z03 = &z02;  // 取出2级指针的内存地址
    int ****z04 = &z03; // 取出3级指针的内存地址
    // 需求:操作 z04 4级指针,取出999
    printf("取值:%d\n", ****z04);

B、函数指针-- 指向函数的指针 就是函数指针

函数要顺序结构

   ##TODO 函数指针 == 指向函数的指针 就是函数指针
    void(*test01)(char*) = myPrintln;
    // 参数一:函数指针实现
    // 参数二:字符串
    // say(test01, "降龙十八掌");
    say(myPrintln, "九阳神功"); // 简写

  ##TODO 为了学习 函数指针
// 整体:void(*aa)(char*)
// void == 函数的返回,  (*onShowAction) == 函数的名字
// (char*) == 函数的参数
void say(void(*onShowAction)(char*), char * msg) {
    onShowAction(msg);
}
    // 函数指针的实战
    void(*success)(int64_t responseCode, char * resultInfo) = loginSuccessAction;
    void(*error)(int32_t errorCode, char * errorInfo) = loginErrorAction;
    loginEngine(success, error);*/

// TODO 指针函数 实战 (登录)
void loginEngine(void(*loginSuccess)(int64_t responseCode, char * resultInfo),
            void(*loginError)(int32_t errorCode, char * errorInfo)) {
    bool isLoginOk = 0;
    if (isLoginOk) {
        loginSuccess(200, "登陆成功,欢迎回来....");
    } else {
        loginError(404, "请检查网络再说...");
    }
}

// 登陆成功的具体
void * loginSuccessAction(int64_t responseCode, char * resultInfo) {
    printf("刷新UI操作,code=%d\n", responseCode);
    printf("刷新UI操作,info=%s\n", resultInfo);
}

// 登陆失败的具体
void * loginErrorAction(int32_t errorCode, char * errorInfo) {
    printf("刷新UI操作,code=%d\n", errorCode);
    printf("刷新UI操作,info=%s\n", errorInfo);
}

C、预处理器:指向流程,并不是在编译时期

#if 0
    printf("写法一");
#else if 9
    printf("写法二\n");
#endif
    printf("一定会执行的");

D、宏

// 定义了一个宏
#define DEBUG_MODE

#ifndef RELASE_DEBUG; // n == not 是否没有定义DEBUG_MODE
    printf("配合宏,当前属于Debug模式\n");
#else
    printf("配合宏,当前属于Relase模式\n");
#endif
    printf("一定会执行的");

D、typedef别名

typedef int int32_t;

相关文章

  • C语言基础二

    一、静态开辟内存 二、动态开辟 1、malloc() 2、使用场景 3、realloc() // 面试题: re...

  • 二、C语言基础

    A、指针 指针的概念:指针变量 和 指针 的区别 ?答:指针变量是指针的标记,也可以通过指针变量的标记操作指针内存...

  • C语言系列教程完整版(持续更新)

    下面是C语言所有完整的教程 C语言教程(一):程序开发理论基础 C语言教程(二):开发环境搭建 C语言教程(三):...

  • NCRE&MOOC

    二级C Cousera计算导论与C语言基础 中国大学MOOCC语言程序设计C语言程序设计——快速入门与提高 二级J...

  • C++ 基础(一)

    目录 C++ 基础(一) C++面向对象基础(二) 前言 自工作以来接触了 OC、Swift、RN、C 语言,简单...

  • iOS必备技能

    Objective-C/Swift Objective-C语言基础 Swift语言基础 Library、Frame...

  • 一、本文集内容

    学啥 1.计算机基础知识(c语言相关的)2.C语言基础3.C语言进阶4.C语言小项目 学习教材-C语言编程: 一本...

  • 高中毕业后进入大学,想学计算机编程,有什么建议能够提供呢?

    C 语言是学习其他计算机语言的基础,学好了C语言往后的学习就简单多啦,不过别担心,C语言基础学习不难。学C语言,大...

  • 大牛查漏补缺 -- C语言注意点

    前言:C语言是Java、Objective-C、C++等高级语言的基础、也是跨平台开发的基础,指针是C语言的重中之...

  • c语言基础学习(二)

    简短声明:本人水平有限,如果内容出现问题希望指正交流。 1.内容简介 二进制基础 变量与常量 数据类型 2.二进制...

网友评论

      本文标题:二、C语言基础

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