当函数的参数中包括变量,而又想在函数执行时,改变该变量的值,使其返回,应该用指针
2012-05-10 10:14
369 查看
举个例子
int detection_tracking(ImageBuffer* buffer,unsigned char* input_img,unsigned char* input_img_sampled,int *first_time);
{
if(*first_time)
{
//做些什么事情
*first_time=0;
}
else
{}
}
使用时
main()
{
static int first_time=1;
...
detection_tracking(buffer, input_img,input_img_sampled,&first_time);
...
}
如果函数定义为
int detection_tracking(ImageBuffer* buffer,unsigned char* input_img,unsigned char* input_img_sampled,int first_time);
则调用时,first_time的值没法被改变。因为传递的是变量的值,而不是指针地址。
另外一种方法是用return返回。
int detection_tracking(ImageBuffer* buffer,unsigned char* input_img,unsigned char* input_img_sampled,int *first_time);
{
if(*first_time)
{
//做些什么事情
*first_time=0;
}
else
{}
}
使用时
main()
{
static int first_time=1;
...
detection_tracking(buffer, input_img,input_img_sampled,&first_time);
...
}
如果函数定义为
int detection_tracking(ImageBuffer* buffer,unsigned char* input_img,unsigned char* input_img_sampled,int first_time);
则调用时,first_time的值没法被改变。因为传递的是变量的值,而不是指针地址。
另外一种方法是用return返回。
相关文章推荐
- [C++] C++中const修饰指针,变量, 函数参数和函数返回值的用法总结
- C++获取Lua全局变量和执行Lua多参数多返回值函数
- C++获取Lua全局变量和执行Lua多参数多返回值函数
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
- C/C++ 子函数返回局部变量、指针 和改变指针指向
- 实参和形参指针做函数参数时,如何改变main函数变量的值
- 变量指针和函数参数
- 函数多个返回值(返回多个参数/局部变量)通过双重指针来实现
- 写一个字符串函数,这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 宏定义函数指针类型&函数返回左值类值 1。宏定义不分配内存,变量定义分配内存。 2。宏名和参数的括号间不能有空格 3。宏替换只作替换,不做计算,不做表达式求解 //下面是正确的标准的写法 typedef int(FUNC1)(int in); ty
- C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针
- 这个字符串参数必须包含一个或多个数字,函数应该把这些 数字字符转换为整数并返回这个整数。如果字符串参数包含 了任何非数字字符,函数就返回零。
- 使用指针做函数返回值和指针作函数参数问题
- 返回指针的函数特性,和malloc的初识,全局变量的提示
- 函数多个返回值(返回多个参数/局部变量)通过双重指针来实现
- 返回指向局部变量指针的函数 与 返回局部变量引用的函数
- c/c++使用指针做函数返回值和指针作函数参数问题
- 用结构体变量和结构体变量的指针做参数函数
- 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数