C++指针实例:编写计算字符串长度的函数

需积分: 50 1 下载量 103 浏览量 更新于2024-07-13 收藏 432KB PPT 举报
本文主要介绍了如何在C++中编写一个函数来计算字符串的长度,并涉及了指针的相关概念,包括指针的定义、运算、与数组的关系、在字符串处理中的应用,以及动态内存分配和函数指针等内容。 在C++编程中,计算字符串长度通常使用内置的`strlen()`函数,但为了理解指针的工作原理,我们可以自定义一个函数来实现这个功能。题目提供的代码中定义了两个`strlen()`函数,它们都通过遍历字符串直到遇到空字符`\0`来计算字符串的长度。 ```cpp int strlen(char str[]) { int i; for(i = 0; str[i] != '\0'; i++); return i; } int strlen(char *str) { int i; for(i = 0; *str != '\0'; i++, str++); return i; } ``` 这两个函数的主要区别在于第二个函数使用了指针解引用`*str`来访问字符串,而第一个函数则直接使用数组名`str`,在C++中,数组名在很多情况下可以被当作指向数组首元素的指针。 指针是C++中的一个重要概念,它是一个变量,存储了另一个变量的地址。指针的定义通常包含一个基本数据类型和指针变量的名称,例如`int* myPtr`表示`myPtr`是一个指向整型数据的指针。指针可以用来间接访问和修改它所指向的变量的值。 在C++中,可以使用`&`运算符获取变量的地址,如`int y = 5; int* yPtr = &y;`,而`*`运算符用于间接访问指针所指向的值,如`*yPtr = 7;`。指针的解引用操作`*`和取地址操作`&`是互逆的,但需要注意的是,`*`运算符不能作用于常量。 指针与数组有着密切的关系,因为数组名实质上就是指向数组首元素的指针。在处理字符串时,字符串实际上是以`\0`结尾的字符数组,因此可以用指针遍历字符串并计算长度。 此外,指针还可以与`const`关键字结合使用,创建只读指针,防止通过指针修改变量的值。在函数参数中传递指针允许直接修改原变量的值,这是函数参数传递的一种高效方式。 动态内存分配是通过`new`和`delete`关键字实现的,允许程序在运行时根据需要分配和释放内存。例如,`int* ptr = new int;`会为一个整型变量分配内存,并将`ptr`设置为指向这块内存的地址。 最后,函数指针可以用来存储函数的地址,使得函数可以作为参数传递或用作其他函数的返回值,增强了程序的灵活性。 本资源探讨了C++中的指针基本概念和用法,特别是如何使用指针来计算字符串长度,以及指针在数组、动态内存分配和函数调用中的应用。这些知识对于理解和编写高效的C++代码至关重要。