【九月打卡】第13天 物联网/嵌入式工程师学习笔记13
课程信息
- 课程名称:物联网/嵌入式工程师
- 章节名称:第2周之第四讲 1-14 指针函数
- 讲师姓名:大白老师
课程内容概述
1. 概述
指针函数
- 本质:是一个函数,只不过返回值是一个地址。
思考:如何定义一个指针函数?
返回值类型 * 函数名称 (类型1 参数1,类型2 参数2 ,…);
2. 示例代码
//
// Created by au on 2022/9/17.
//
#include <stdio.h>
#include <string.h>
char *design_array(int *len) {
static char a[100] = {0};
// len = sizeof(a) / sizeof(a[0]);
len = strlen(a);
return a;
}
char *input_array(char *array) {
printf("请输入任意的字符串:");
gets(array);
return array;
}
void output_array(char *array) {
printf("字符串中的每一个字符依次为:");
// todo 这里的计算结果总是 8/1
// int len = sizeof(array) / sizeof(array[0]);
int len = strlen(array);
for (int i = 0; i < len; ++i) {
printf("%c ", array[i]);
}
printf("\n");
}
int count_space(char *array) {
int sum_space = 0;
// int len = sizeof(array) / sizeof(array[0]);
int len = strlen(array);
for (int i = 0; i < len; ++i) {
if (array[i] == ' ') {
sum_space += 1;
}
}
return sum_space;
}
/**
* (1)要求大家是设计⼀个 design_array()函数,自己定义返回值和参数。 要求 desigan_array()函数中定义一个,static char a[100] = {0};,然后 把数组首地址和长度返回。
(2)设计一个 input_array() 函数,自定义返回和参数,要求用户从键盘 输入任意的字符串,存放到a数组中
(3)设计一个 output_array() 函数,要求输出a数组中的每一个字符, 以空格作为区分. w u h a n s h a n g h a i
(4)设计一个 count_space() 函数,自定义返回和参数,要求用户统计数组a中用户 输入的空格个数,并返回值给main函数。
(5)main()函数调用以上函数,并输出空格个数。
* @return
*/
int main() {
int len = 3;
char *string = design_array(&len);
// printf("该数组的长度为:%d\n", len);
string = input_array(string);
output_array(string);
int sum_space = count_space(string);
printf("字符串中空格的个数为:%d", sum_space);
}
运行结果
请输入任意的字符串:d df df dfg er
字符串中的每一个字符依次为:d d f d f d f g e r
字符串中空格的个数为:4
请输入任意的字符串:sdf sdfl dsklfj er
字符串中的每一个字符依次为:s d f s d f l d s k l f j e r
字符串中空格的个数为:7
学习心得
C语言中的指针函数,就是返回值为指针的函数,其中一个机关为就是static,可以扩展指针的生命周期。