最近指针和字符串、函数一系列的结合整的有点蒙,梳理了一下终于有点眉目了,用代码练习了一下

1,指针函数(返回值是指针的函数)

#include <stdio.h>

char * fun(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

printf("str before::%s\n",arr);

fun(arr);

printf("str after::%s\n",arr);

return 0;

}

char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;

}
return arr;

}

2.函数指针(函数名即使函数的地址,即使函数指针)

#include <stdio.h>

char * fun(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

char *(*p)(char *) = fun;
printf("str before::%s\n",arr);

p(arr);

printf("str after::%s\n",arr);

return 0;

}

char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;
}
return arr;
}

3.函数指针数组(将多个函数指针放入数组中)

#include <stdio.h>

char * fun(char * arr);

char * fun1(char * arr);

int main(int argc, const char *argv[])
{
char arr[100]="hello worlde";

char *(*p[2])(char *);
p[0] = fun;
p[1] = fun1;
printf("str before::%s\n",arr);

p[0](arr);
p[1](arr);

printf("str after::%s\n",arr);

return 0;

}

char * fun(char *arr){
while(*arr){
if(*arr == ' '){
arr++;
continue;
}
*arr -= 32;
arr++;
}
return arr;
}

char * fun1(char * arr)
{
while(*arr){
if(*arr == ' '){
*arr = '&';
break;
}
arr++;
}
return arr;
}

4.函数指针数组指针(将函数指针数组的地址定义为另一个指针,一般不常用,就不继续举例下去了)

转载于:https://www.cnblogs.com/huiji12321/p/11150339.html

step1 . day10 C语言基础练习之指针和函数相关推荐

  1. step1 . day8 C语言基础练习之指针和函数

    今天继续复习指针,还是很深奥的,两点注意事项: 1. int型数据可以强制类型转化赋值给指针变量,然后对该地址赋值(用在裸机上): 2.指针数组是数组,存放的是指针,数组指针是数组的指针,存放的是行指 ...

  2. step1 . day7 C语言基础练习之指针和函数

    今天复习之指针即使用指针进行的函数传参,优化一下昨天写的strcpy strcmp strlen strcat,添加了strstr.atoi函数,算是熟悉之前的知识汇总,顺便练习一下封装函数和书写函数 ...

  3. step1.day11 C语言基础练习之指针和二级指针

    梳理了好长时间,总是分不清为什么一级指针能干的事儿为啥引入二级指针,据一个驱动工程师说还是挺常用的,忍者难受尝试使用了一下二级指针. 遇到一个问题是,如果想让一级指针指向移动,二级指针需要的格式是(* ...

  4. c语言指针指向怎么指,C语言-基础教程-指向指针的指针

    一个指针变量可以指向整型变量.实型变量.字符类型变量,当然也可以指向指针类型变量.当这种指针变量用于指向指针类型变量时,我们称之为指向指针的指针变量,这话可能会感到有些绕口,但你想到一个指针变量的地址 ...

  5. step1 . day6 C语言基础练习之数组和字符串

    今天复习之数组即字符串相关知识,贴几个小练习,体会一下数组细节知识点: 1.冒泡排序 #include <stdio.h> #define N 10 int main(int argc, ...

  6. 【C语言基础】野指针与空指针

    全网最接地气的C语言野指针介绍,此处对于野指针与空指针知识点做一些简要的介绍,作者实属初学,写博客也是作者学习的一个过程,难免文章中有内容理解不到位或者有不当之处,还请朋友们不吝指正,希望大家多多给予 ...

  7. step1 . day4 C语言基础练习之日历

    学习完基础循环.选择语句,写一个日历检验水准. 日历核心: 1.选择基础参照,用来计算总天数和周几的参照(since 1900.1.1,这天是周一) 2.闰年平年的判断条件及循环结构 3.计算需要打印 ...

  8. step1 . day3 C语言基础

    C语言还挺杂乱,很多细节知识,不仅要知道理论,还得从编程中慢慢体会,今天天写了一个简单的加减乘除取余程序,慢慢捡起以前学的知识,不过最大的进步是最近用VI慢慢的熟练了起来. #include < ...

  9. step1 . day5 C语言基础练习之日历(使用函数调用,优化至元年开始时间)

    尝试着优化了一下,不知道为什将基准时间1990-1-1改为0-1-1(都是周一)(此处错误,应该是1-1-1是周一,即公元元年是1年不是0年),输出结果都不对,查找了一下解决方案,有个函数可以计算出某 ...

最新文章

  1. 坚持教学与科研相结合
  2. 【Android】Pixel 2 解锁 Bootloader
  3. python基础2(来自廖雪峰的官方网站)
  4. 一组图诠释CNN及RNN的区别
  5. 设计模式笔记之五:观察者模式
  6. python 报ImportError: Install xlrd = 1.0.0 for Excel support错误出现及其解决帮法
  7. JavaScript中的Function类型总结
  8. resnet网络结构_ResNet网络详细解析(超详细哦)
  9. android 自定义view 水波纹进度球
  10. 大数据:海量数据的存储方案及其对应的高并发解决方案
  11. 人人商城小程序下单付款报错:“服务器暂时无法处理您的请求,请稍后再试”
  12. 星期、月份英文缩写对照表
  13. win7系统还原点来还原系统
  14. idea 编码扫描插件_用IDEA这样Review代码真牛逼
  15. IT男的神级吐槽 || 我们IT人的心声(_)
  16. 常见运放电路分析仿真汇总
  17. 基于opencv的图片模板匹配及其简单应用
  18. 在CSS世界的权力——权重
  19. Code Review(自评)
  20. Qt (高仿Visio)流程图组件开发(三) 图元基类如何定义,流程图多种图元类型实现

热门文章

  1. loop指令 c语言,arm汇编loop指令
  2. 记录x86调试命令总结
  3. 查看linux显示文件大小,Linux下查看占用最大的文件和文件夹大小
  4. 记录 之 遇到的 lamda 表达式和功能理解
  5. 记录 之 最近阅读的动作识别(action recognition)工作
  6. linux tar.gz文件安装
  7. mysql done_MySQL 获取游标结果报错:1193-Unknown system variable ‘done’
  8. Linux网络编程---详解TCP
  9. [转] CMake入门
  10. Pwn环境配置(三)——ubuntu环境搭建(新)