C语言中指向指针和返回指针的区别
时间: 2024-05-03 21:15:03 浏览: 89
在C语言中,指向指针和返回指针是两个不同的概念。
1. 指向指针:指向指针是指一个指针变量存储了另一个变量的地址。通过指向指针,我们可以通过间接引用来访问和修改该变量的值。例如,我们可以声明一个指向整型变量的指针,并将其指向某个整型变量的地址,然后通过解引用操作符(*)来访问该变量的值。
2. 返回指针:返回指针是指一个函数返回了一个指针类型的值。这意味着函数执行完毕后,会返回一个指向某个数据类型的指针。通过返回指针,我们可以在函数外部使用该指针来访问函数内部创建的变量或数据。例如,我们可以定义一个函数,它返回一个指向动态分配内存的指针,然后在函数外部使用该指针来访问和操作这块内存。
相关问题
用C语言编写程序,在主函数中调用函数,计算字符串中某指定子串出现的次数。 要求:使用指向字符串和要查找的子串的指针,返回次数。
好的,这是一个计算字符串中指定子串出现次数的 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int countSubstr(char *str, char *substr) {
int cnt = 0;
int len = strlen(substr);
while (*str != '\0') {
if (strncmp(str, substr, len) == 0) {
cnt++;
}
str++;
}
return cnt;
}
int main() {
char str[100];
char substr[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
printf("请输入子串:");
fgets(substr, 100, stdin);
int cnt = countSubstr(str, substr);
printf("子串在字符串中出现的次数为:%d\n", cnt);
return 0;
}
```
这个程序使用了指向字符串和要查找的子串的指针,利用 `strncmp` 函数进行子串匹配,然后统计出现次数。在主函数中,通过 `fgets` 函数读入字符串和子串,调用 `countSubstr` 函数计算出现次数,并输出结果。注意使用 `fgets` 函数来读入字符串和子串,而不是 `scanf` 函数,避免输入过长导致的缓冲区溢出问题。
阅读全文