const char* str与const char&str
时间: 2023-08-07 10:08:35 浏览: 50
const char* str 表示一个指向字符常量的指针,可以用来存储字符串的地址。这种表示方法可以让我们对字符串进行修改,因为指针可以指向不同的地址。
而 const char& str 表示一个对字符常量的引用,它是一个别名,可以用来访问字符串中的字符。这种表示方法不允许我们对字符串进行修改,因为引用是只读的。
所以,const char* str 可以用来表示字符串的地址,并且可以修改字符串内容,而 const char& str 只能用来访问字符串的内容,不能修改字符串。
相关问题
const char* str
您可以使用`const char*`来声明一个指向字符常量的指针。这个指针可以用于存储字符串常量的地址。例如:
```cpp
const char* str = "Hello, World!";
```
在这个例子中,`str`指针指向字符串常量"Hello, World!"的首地址。由于字符串常量是只读的,所以我们将其声明为`const char*`类型。
注意:如果您需要修改字符串的内容,那么您应该使用`char*`类型而不是`const char*`类型。
char my_strcmp(char *str1,const char *str2);C语言
`my_strcmp` 函数是用来比较两个字符串 `str1` 和 `str2` 是否相等。函数的原型如下:
```c
int my_strcmp(const char *str1, const char *str2);
```
其中,`str1` 和 `str2` 是要比较的字符串。
函数的实现如下:
```c
int my_strcmp(const char *str1, const char *str2) {
while (*str1 && *str2 && (*str1 == *str2)) {
str1++;
str2++;
}
return (*str1 - *str2);
}
```
函数会逐个比较两个字符串对应位置的字符,如果相等则继续比较下一个字符,直到遇到不相等的字符或者其中一个字符串的结束符为止。如果两个字符串完全相等,函数返回值为 0;如果 `str1` 大于 `str2`,返回值为正数;如果 `str1` 小于 `str2`,返回值为负数。
使用示例:
```c
#include <stdio.h>
int main() {
char str1[] = "Hello";
char str2[] = "Hello";
int result = my_strcmp(str1, str2);
if (result == 0) {
printf("Strings are equal\n");
} else if (result > 0) {
printf("String 1 is greater than String 2\n");
} else {
printf("String 1 is less than String 2\n");
}
return 0;
}
```
输出结果为:
```
Strings are equal
```