`
sealbird
  • 浏览: 586872 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

指针的一个应用

    博客分类:
  • C++
 
阅读更多
//设计一个函数:void find1(char array[], char search, char *pa)
//要求:这个函数参数中的数组array是以0值为结束的字符串,
//要求在字符串array中查找字符是参数search里的字符。
//如果找到,函数通过第三个参数(pa)返回值为array字符串中第一个找到的字符的地址。
//如果没找到,则为pa为0。

一、
void find0(char array[], char search, char *pa);
void find0(char array[], char search, char *pa)
{
	int i;
	for (i = 0; *(array + i) != 0; i++)
	{
		if ( *(array+i) == search)
		{
			pa = array + i;
			break;
		}
		else if (*(array+i) == 0)
		{
			pa = 0;
			break;
		}
	}
}

void main()
{
	char str[] = {"afsdfsdfdf\0"}; /* 待查找的字符串 */
	char a = 'd'; /* 设置要查找的字符 */
	char *p = 0; /* 如果查找到后指针p将指向字符串中查找到的第1个字符的地址。 */
	find0(str, a, p); /* 调用函数以实现所要操作。 */
	if (0 == p)
	{
		printf("没找到!\n"); /* 如果没找到则输出此句 */
	}
	else
	{
		printf("找到了,p = %d\r\n", p); /* 如果找到则输出此句 */
		printf("找到了,p = %s", p); /* 如果找到则输出此句 */
	}
	
}

隐含了
array = str;
search = a;
pa = p; /* 请注意:以上三句是调用时隐含的动作。*/

/*哦!参数pa与参数search的传递并没有什么不同,
都是值传递嘛(小语:地址传递其实就是地址值传递嘛)!
所以对形参变量pa值(当然值是一个地址值)的修改并不会改变实参变量p值,
因此p的值并没有改变(即p的指向并没有被改变)。*/

二、

void find1(char array[], char search, char **pa);
void find1(char array[], char search, char **pa)
{
	int i;
	for (i = 0; *(array + i) != 0; i++)
	{
		if ( *(array+i) == search)
		{
			*pa =array + i;
			break;
		}
		else if (*(array+i) == 0)
		{
			pa = 0;
			break;
		}
	}
}

void main()
{
	char str[] = {"afsdfsdfdf\0"}; /* 待查找的字符串 */
	char a = 'd'; /* 设置要查找的字符 */
	char *p = 0; /* 如果查找到后指针p将指向字符串中查找到的第1个字符的地址。 */
	find1(str, a, &p); /* 调用函数以实现所要操作。 */
	if (0 == p)
	{
		printf("没找到!\n"); /* 如果没找到则输出此句 */
	}
	else
	{
		printf("找到了,p = %d\r\n", p); /* 如果找到则输出此句 */
		printf("找到了,p = %s", p); /* 如果找到则输出此句 */
	}
	
}


隐含了
array = str;
search = a;
pa = &p; /* 请注意:以上三句是调用时隐含的动作。*/

ok 了
一句话,你是把地址传进去了吗
分享到:
评论

相关推荐

    指针数组,两级指针,指针应用,指针示例

    2.在一个表达式里,*p[] 将被求值为一个int 整数,所以p[]必须指向一个int 整数,而p是一个int 指针数组。指针数组p里的5个元素(5个)指针被初始化为分别指向数组a里的5个元素。 3.**pp代表着一个int整数,所以*pp...

    C++指针及数组应用

    指针是C++中的一个变量,它存储了另一个变量的内存地址。指针的类型决定它所指向的内存地址中数据的类型。在C++中,指针可以分为静态指针和动态指针。静态指针的地址在编译时已经确定,而动态指针,通常通过指针运算...

    C++指针经典应用

    数组名实际上可以被视为指向该数组第一个元素的指针。这一点在代码片段中得到了体现: ```cpp char str[] = "helloworld"; for (int i = 0; i (str); i++) cout [str] ; ``` 这里使用了两个关键特性:一是`i[str]...

    西门子触摸屏指针化应用

    在西门子触摸屏的应用中,指针化意味着可以使用一个变量(即索引变量)来访问和操作一系列相关联的变量,而无需为每个变量单独创建界面元素和对应的逻辑。 例如,假设我们有一个生产线,其中有多个相同的设备需要...

    西门子触摸屏HMI变量的指针化索引应用示例详解(多台电机).docx

    - **定义**:变量的指针化是指将一个变量与另一个变量(或一组变量)关联起来的技术。这种技术在处理多个相似对象的数据时非常有用。 - **应用场景**:当有多个类似的设备(如多台电机)需要监控其状态时,可以通过...

    指针简单应用

    在编程的世界里,指针是C/C++等语言中的一个重要概念,它在程序设计中扮演着核心角色。本文将深入探讨“指针简单应用”,帮助初学者理解并掌握这一关键知识点。 指针,顾名思义,就是指向内存地址的变量。在C/C++中...

    函数指针与指针函数应用程序

    通过阅读提供的"函数指针应用.docx"文档,你将更深入地了解如何在实际项目中使用函数指针和指针函数,包括它们的声明、赋值、传递和调用方式,以及它们在解决实际问题时的策略和技巧。文档可能还会涵盖一些高级主题...

    MFC应用程序中指针的应用

    MFC的主应用程序类`CWinApp`有一个成员变量`m_pMainWnd`,它是主框架窗口的指针。你可以直接访问这个变量,或者使用`AfxGetMainWnd()`函数获取: ```cpp CMainFrame *pMain = (CMainFrame *)AfxGetMainWnd(); ``` 3...

    彻底搞定C指针-指向另一指针的指针

    彻底搞定 C 指针-指向另一指针的指针 ...今天我们学习了指向另一指针的指针的概念,并且通过一个实例来演示了这种指针的应用。指针是一种非常有用的数据类型,可以帮助我们更好地管理和操作内存中的数据。

    彻底理解指针,指针数组和数组指针,指针函数和函数指针

    - **用途**: `ptr` 是一个指向一个函数的指针,这个函数接受一个整型参数,并返回一个整型值。 ### 6. 指针函数 - **定义**: `int *(*ptr(int))[3];` - **指针类型**: `int *(*)[3]` - **指针所指向的类型**: `...

    指针高级应用_虚函数

    在C++编程语言中,指针是一个非常重要的概念,它允许我们直接操作内存地址,从而实现灵活的数据操作和高效的数据结构。在这个主题中,我们将深入探讨指针的高级应用,特别是与虚函数相关的知识,以及如何进行强制...

    指向函数的指针运用

    在实际应用中,`callTwoFunctions`可以作为一个灵活的接口,用于比较或组合不同的函数行为。例如,我们可以根据需要更换积分算法,或者添加更多的函数进行比较。 压缩包中的`指向函数的指针.cpp`文件应该包含了上述...

    指针函数的应用

    了解指针函数,及使用指针函数时的注意事项,以说明

    《C语言》指针综合应用程序设计

    - 输入一个二维数组,计算每行的平均值以及每列的总和。 - 这个示例涉及到了二维数组的指针操作,通过指针遍历和计算数组中的数据。 - 需要注意的是,在二维数组中,可以使用指针来访问数组的不同维度,这有助于...

    单片机C语言中指针的应用

    在单片机C语言编程中,指针是一个非常重要的概念,它能够帮助开发者更高效地访问内存和处理数据。本文将重点介绍单片机C语言中指针的应用,包括指针的声明、不同存储区(片内、片外数据存储区和程序存储区)的指针...

    C语言-数组、结构体与指针的综合应用实验报告

    【C语言-数组、结构体与指针的综合应用实验报告】 本次实验旨在掌握C语言中数组、结构体和指针的基本用法,以及初步理解链表的概念和操作。实验内容涉及设计一个结构体来存储学生信息,包括学号、姓名、三科成绩和...

    数组与指针应用详解,区别

    数组与指针应用详解,区别 数组名与指针的关系是 C/C++ 编程中的一大难点,许多程序员容易将数组名与指针混淆,认为数组名就是指针。然而,实际上数组名与指针有着本质的区别。 第一点,数组名不是指针。从 sizeof...

    指针的高级应用

    有关于C语言指针的高级应用,帮助初学者更好地理解和应用指针

Global site tag (gtag.js) - Google Analytics