首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C 语言】指针间接赋值 ( 间接赋值三要素 | 间接赋值 使用的三种场景 )

    文章目录 一、间接赋值三要素 二、间接赋值 使用场景 1、① ② ③ 都在同一个函数中 2、① ② 在一个函数中 ③ 在另一个函数中 一、间接赋值三要素 ---- 三要素总结 : ① 定义实参和形参...; ② 实参地址赋值给形参 ; ③ 使用形参指针修改实参值 ; 间接赋值 3 大要素 : 要素 ① : 定义 实际变量 ( 实参 ) , 以及接收 实际变量 地址的 指针参数 ( 形参 ) ; 如果...// 实际变量 地址 , 赋值给 形参指针 // 该指针变量将来用作 函数参数 p = &a; 要素 ③ : 使用 形参指针 修改 实际变量 ( 实参 ) 的值 ; *p = 20; 二、间接赋值...使用场景 ---- 上述 间接赋值 3 要素 , ① 定义实参和形参 ; ② 实参地址赋值给形参 ; ③ 使用形参指针修改实参值 ; 在不同场景的组合 , 产生了 3 种 语法现象 ; 语法现象

    1.9K20

    C 语言】指针间接赋值 ( 指针作为 函数参数 的意义 | 间接赋值 代码示例 )

    文章目录 一、指针作为 函数参数 ( 间接赋值 ) 的意义 二、间接赋值 代码示例 一、指针作为 函数参数 ( 间接赋值 ) 的意义 ---- 调用函数时 , 调用 & 取地址 生成 实参 p , 将...在函数中使用 *p 修改内存值 , 可以将 运算结果通过 *p 传递出来 ; 指针 作为 函数参数 , 可以实现 主函数 与 被调用子函数 之间 内存交换 ; 下面是逻辑链 : 指针作函数参数 ( 间接赋值...) -> 接口封装与设计 -> 模块划分 -> 软件分层 正是因为有了 间接赋值 , 才能实现 接口封装与设计 , 进而实现了 模块划分 , 最后实现了 软件分层 ; 使用 指针 ( 一级指针 或 多级指针...函数 , 与 其它 子函数 之间的 解耦操作 , 实现了 模块化开发 ; 如果没有 指针 作为函数 , 就无法实现 功能分层 , 无法实现 模块化开发 , 就无法实现 接口 封装 与 设计 ; 二、间接赋值

    1.2K10

    C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )

    文章目录 一、直接修改 和 间接修改 指针变量 的值 二、在函数中 间接修改 指针变量 的值 三、在函数中 间接修改 外部变量 的原理 一、直接修改 和 间接修改 指针变量 的值 ---- 直接修改 指针变量...就是为其赋值一个地址值 , 使用 & 取地址符 , 将变量地址赋值给指针变量 , 或者使用 malloc 函数分配内存赋值给 指针变量 ; // 将变量地址赋值给一级指针 p = &a; 间接修改...指针变量 的值 , 首先要 将 指针变量 的 地址值 , 赋值给 1 个 二级指针 变量 , 通过 * 符号 , 间接修改 一级指针变量的值 ; // 将一级指针的地址赋值给二级指针...p2 = &p; // 间接修改指针的值 *p2 = 12345678; 直接修改 和 间接修改 指针变量 的值 代码示例 : #include #include...打印一级指针地址 printf("%d\n", p); // 命令行不要退出 system("pause"); return 0; } 执行结果 : 二、在函数中 间接修改

    21.2K11

    C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )

    文章目录 一、变量修改 1、直接修改变量 2、通过内存地址间接修改变量 3、通过指针间接修改变量 一、变量修改 ---- 访问 变量 , 就是 访问 内存空间 ; 访问 指的是 读写 内存 ; 修改变量的方式...: 直接修改 : 通过 变量 , 可以 直接 修改内存 , 间接修改 : 通过取地址符 , 拿到变量所在内存的 地址编号 , 通过地址编号修改内存 ; 1、直接修改变量 #include <stdio.h...// a=1, &a=6422220 // a 是内存地址 6422220 位置的 4 字节内存标号 printf("a=%d, &a=%d\n", a, &a); // 间接修改...printf("a=%d, &a=%d\n", a, &a); return 0; } 执行结果 : a=1, &a=6422216 a=2, &a=6422216 3、通过指针间接修改变量...变量 a 的地址 , // 直接修改该地址对应的内存空间中的数据 *( &a ) = 2; printf("a=%d, &a=%d\n", a, &a); // 间接修改

    1.3K10

    C语言中不同变量的访问方式

    C语言中的变量大致可以分为全局变量,局部变量,堆变量和静态局部变量,这些不同的变量存储在不同的位置,有不同的生命周期。...eax,[i (00432e24)] 0040126D push eax 0040126E push offset string "%d\n" (0042e01c)...另外在使用时采用的是直接寻址的方式,并没有用寄存器来进行间接寻址,从这点上来看,i变量的地址不会随着程序的运行而改变,这个地址一直可以使用,所以全局变量的生命周期与程序的生命周期相同。...与上面的全局变量的地址进行比较,我们可以看出,其实它也是在全局作用域的,在初始化时也没有发现有任何的初始化代码,所以我们可以说,它的生命周期也是全局的,但是由于static将其可见域限定在函数中,所以在函数外不能通过这个变量名来访问这块内存区域...当该标志位为1则表明进行了初始化,直接跳过初始化的步骤 00401276 mov cl,byte ptr [`test'::`2'::$S25 (00433e24)] 0040127C

    1.8K30

    【重拾C语言】八、表单数据组织——结构体(类型、类型别名、直接间接访问;典例:复数、成绩单)

    前言 C语言中,结构体(Structure)是一种自定义的数据类型,用于组织和存储不同类型的数据项。结构体允许我们将多个相关的数据项组合在一起,形成一个更复杂的数据结构。...八、结构体 8.1 结构体类型 结构体类型的定义 结构体类型是分量的集合 分量也称成员、成分、域 分量类型可以不同 C语言中,结构体类型的定义是使用struct关键字 结构体标签是用于标识结构体类型的名称...8.2 结构体类型名 8.2.1 typedef关键字 typedef是C语言中的一个关键字,用于为已有的数据类型起一个新的名称(别名)。...8.4.2 间接成员选择表达式——指向结构体变量的指针 通过指针可以方便地访问结构体的成员变量,可以使用箭头运算符 "->" 来访问指向结构体的指针所指向的成员变量。...无论是直接成员选择表达式还是间接成员选择表达式,都可以根据需要继续应用于内层结构体变量。

    5810

    成员访问符号(.和-)的详解c语言版:

    成员访问符号(.和->)的详解: 一、成员访问符 成员访问符通常是指:用于访问结构体、类或对象的成员(属性或方法)的符号。 操作符名称: 点号(.)...箭头符号(->) 双冒号(::) 在大多数编程语言中都使用点号来访问结构体、类或对象的成员。 在CC++中,当通过指针访问结构体或类的成员时,需要使用箭头符号来代替点号。...一般用于C++中,在C++中,一般用于访问命名空间中的成员,也可以用于访问静态成员和嵌套的类。 在C语言中,我们主要使用前两种操作符,对于第三种我们在本文中不进行深入展开。...三、总结 对于这两种成员访问符,各自有各自的使用范围 访问方式 对应的访问符 结构体变量直接访问成员变量 点号操作符 通过指针(即结构体的地址)来访问成员变量 能使用箭头(->)操作符 通过指针进行解引用...(*p)来访问 点号操作符来进行访问 结构体变量直接访问成员变量,只能使用点号操作符; 通过指针(即结构体的地址)来访问成员变量,只能使用箭头(->)操作符 但是我们可以对 指针进行解引用(*p

    25310

    C++】C 语言C++ 语言的关系 ( C 语言发展 | C 语言缺陷 | C 语言 + 面向对象 + 高级语言特性 | C++ 语言增加内容 | C 语言C++ 语言应用场景 )

    一、C 语言发展 C 语言 被开发之前 并 没有经过 缜密 的 设计 , 而是在 使用过程中 逐渐完善的 ; C 语言发展经过如下阶段 : 初始阶段 : 1972年至1978年 , C语言 初步形成 ,...C99 , C11 , C17 等标准 , 以满足新的编程需求 ; 二、C 语言缺陷 C 语言有如下缺陷 : C 语言 没有经历过 缜密的 设计过程 , 都是根据需求逐渐完善的 , 出现了很多缺陷和漏洞...; C 语言 有很多 " 低级语言的特征 " , 如 : 可以直接访问内存 , 没有垃圾回收机制 , 需要手动管理内存 , 可以直接访问硬件 - 读写端口 / 控制中断 ; C 语言 直接 通过 "...2、C 语言C++ 语言关系 C 语言C++ 语言 并 不是 竞争关系 ; C++ 语言 是 以 C 语言为基础 的 加强版本编程语言 , 可以看作是更好的 C 语言 , 在 C++ 语言...中 , 可以使用 C 语言语法 , 对 C 语言完全兼容 ; C++ 语言 包含 C 语言 , 在 C++ 代码中可以使用 C 语言的语法 , 但是在 C 语言中不能使用 C++ 的语法 ; 3、C++

    27720

    C语言】初识C语言(常见的C语言概念)

    一.C语言是什么?...语言大致可以分为自然语言和计算机语言,自然语言就是人与人日常交流的语言,如汉语、英语、日语等等,计算机语言又可以分为机器语言、汇编语言、高级语言C语言就是一个高级语言 机器语言:就是由二进制01组合起来的计算机可以直接识别的程序语言是一种面向机器的语言...,比起低级语言易懂易学,可移植性好,编程效率高,但是执行效率没有低级语言高,需要经过编译或解释,C语言就是采用编译的一种高级语言 二.为什么选择C语言 C语言常年霸榜各类高级语言前三,属于基础必学的语言...,其功能强大,而且许多语言都很相似,如果学好C语言,对学习其他语言也有很大帮助 三.编译器的选择 C语言是一门编译型的语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令 常见的编译器有:msvc...+文件,这里没有C文件选项,因为C++和C基本不分家,将后缀名.cpp改为.c就可以了,创建好后就可以开始写我们的第一个C语言程序了 注意:其中.c的文件叫源文件,.h的文件叫头文件(head),后面会慢慢讲到

    9510
    领券