首页
学习
活动
专区
工具
TVP
发布

【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 指针间接赋值 | 返回值状态 | 指针处理 | 指针判空 | 返回值 )

的基础上 , 将相关功能封装成 API 函数 , 将 主函数 与 子业务 函数分离开 ; 自定义函数接口 ; 分离 自定义的 业务子函数 与 主函数 main() ; 定义的接口如下 : 要点 1 指针间接赋值...: 定义 局部 临时 指针变量 , 接收 函数参变量 , 尽量不修改 函数 的值 ; 指针判空 : 凡是传入的指针 , 一律判定指针是否合法 ; 返回值处理 : 返回值不要直接修改 ,...先定义临时局部变量保存返回值 , 最后执行完毕 , 再将返回值 通过 间接赋值 赋值中的 返回值指针 指向的 内存地址 ; /* * 获取字符串中子串个数接口 * char *main_str..., 失败返回失败代码 */ int get_sub_count(char *main_str, char *sub_str, int *sub_count) { // 为了不修改 函数 ...的值 , 使用指针变量接收 函数 char *main_str_tmp = main_str; char *sub_str_tmp = sub_str; // 返回值临时值

3K10
您找到你想要的搜索结果了吗?
是的
没有找到

-实参概念剖析

实参: 可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给。 因此应预先用赋值,输入等办法使实参获得确定值。... :即函数的自变量,其初值来源于函数的调用。只有在程序执行过程中调用了函数,才有可能得到具体的值,并参与运算求得函数值。...和实参的区别: 1、英文名字不同:是parameter,实参是argument。 2、本质不同:的本质是一个名字,不占用内存空间。实参的本质是一个变量,已经占用内存空间。...站在函数里面,你能看到的函数参数就是--。 //内部有效 2 .站在函数外面,你调用函数输入的参数就是--实参。...所谓的实参害人不浅,概念的抽象应该是简化和解释逻辑,结果这个两个名称最让初学者理解不了。应该是最初翻译带来的弊端。 举例: 1.

1.2K20

【C 语言】数组 ( 一维数组退化 | 二维数组退化 | 函数等价关系 )

文章目录 一、一维数组退化 二、二维数组退化 三、数组等价关系 一、一维数组退化 ---- C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ; 将 int..., 函数中处理 array 数组时 , 不知道该数组的元素个数 , 编译器只能确认 , 该参数是一个 int * 指针类型 ; 这样操作是为了提高 编译器 的效率 , 提高程序执行的效率 , 函数的 ...array[] void fun(int array[]) { } int *array void fun(int *array) { } 二、二维数组退化 ---- 二维数组 作为 函数 ,...也是 指针 , 则为 二级指针 ; 实参为 二维数组 int array[10][20] , 等效的 为 一级指针 int (*array)[20] ; 二维数组 的 数组的元素 是 一维数组...; 外围数组 ( 第二维 ) 退化为 指针 , 指针 指向的元素 是 一维数组 , 则为 指向 一维数组 的指针 , 每个一维数组有 20 个元素 ;

2.6K10

C语言-指针作为函数类型

前言 C语言函数里最常用就是指针传和返回地址,特别是字符串处理中,经常需要封装各种功能函数完成数据处理,并且C语言标准库里也提供了string.h 头文件,里面包含了很多字符串处理函数;这些函数的参数和返回值几乎都是指针类型...} void func(int *a,int *b) { int c; c=*a; *a=*b; *b=c; } //return语句只能返回一个值 //如果函数想返回多个值,可以使用指针(...注意: 从大到小或者小到大排序可以通过函数区分。...='\0'){} return str-p-1; } /* 函数功能: 实现字符串排序.支持从小到大或者大到小 函数: char *p 将要排序的字符串 char flag 选择排序方式...0 printf("a2=%d\n",a2); //随机值 printf("a3=%d\n",a3); //0 return 0; } /* 全局变量默认值是0 局部变量默认值是随机值(系统没有赋值

1.3K30

实参与究竟有什么不同

看下面这段代码 def add(x, y): return x + y x, y ,就是函数add的这个概念,侧重于函数的定义,这段代码里,没有实参,因为实参侧重于函数的调用,看下面这段代码...那么,return x + y 这行代码里,x 与 y 是实参,还是呢? 我个人的见解是,在函数里再去辨别他们已经没什么意义,如果一定需要一个答案,那么,我认为它们是,而不是实参。...,规定了函数的样式,是一种形式的约定,强类型语言还会约定一个的类型。实参,是实际调用时传入函数的数据,因此叫实参。...实参与,是两个维度的事物,一个强调形式,一个强调实际数值,因此我说,他们是两个维度的事物,是静态的概念,实参是动态的概念,我执行add(3, 5), 函数的实参就是3, 5。...在函数内,的值,是由实参决定的,在函数执行之前,你不知道x 和 y 的值是什么,只有函数实际被执行,被调用,在函数内,你才知道的实际数值是什么。

1.2K30

【面试题精讲】&实参

是函数或方法定义时声明的参数,它们作为占位符来接收调用者传递的实际参数值。只存在于函数或方法的定义中,并且其作用域仅限于函数或方法内部。...和实参的关系 和实参之间通过函数或方法的调用建立了联系,它们的关系如下: 当调用一个函数或方法时,需要提供与类型和数量相匹配的实参。...在函数或方法的执行过程中,实参的值会被复制到对应的中,使得函数或方法能够使用这些值进行计算或处理。 对的修改不会影响到实参的值,因为只是实参的副本。...总结 和实参是函数或方法中用于传递数据的概念。是函数或方法定义时声明的参数,用于接收实参的值;实参是函数或方法在调用时传递给的具体数值或对象。...和实参之间通过函数或方法的调用建立了联系,实参的值会被复制到对应的中,使得函数或方法能够使用这些值进行计算或处理。

11510

python之函数的实参和

下面我们来介绍一下python的函数实参和相关内容。...---- 二、实参和   定义函数时,圆括号内是使用逗号分隔的形式参数列表(简称),调用函数时向其传递实参,根据不同的参数类型,将实参的值或引用传递给。...1.传值   当参数类型为固定数据类型(如整数、浮点数、字符串、元组等)时,在函数内部直接修改的值不会影响实参。   例:阅读以下程序,分析输出结果。...---- 三、参考 1、廖雪峰的官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python的函数实参和相关知识,可以参考一下,觉得不错的话,欢迎点赞

90420

matinal:ABAP 实参、、引用传递、值传递

当过程(指的是方法,函数,子例程)被调用的时候,实参要被传递到,传递的方法有引用传递(pass by reference)和值传递(pass by value)两种,这两种方式是在过程的参数接口中定义的...不同的地址对应得是不同的数据对象);但是对于值传递来说,会产生一个数据对象的副本,输出参数和返回值在过程调用的时候会被初始化,而值传递更适合鲁棒性和数据一致性很重要的场景         在实际应用中当决定形使用引用传递还是值传递的时候...当输出参数设置为引用传递: 输出结果:BEF  123 当输出参数设置为值传递时: 输出结果: 123 如果过程因为错误停止(也就是,由于程序RETURN,EXIT,CHECK后停止),通过引用传递的实参会保留被传递的值...(formal parameter):根据他们的类型指定,他们可以像过程中的数据对象一样的方式使用,是过程签名的实质部分,既可以是位置参数(positional parameters)(对于子例程...实参(actual parametes):是一种数据对象,他的内容作为参数传递给,或者是当过程被调用的时候从这个中取到的内容就是实参,也可以传递功能方法或者计算表达式作为实参进行参数传。

16040
领券