C-指针与字符串,函数等应用(8)

来源:互联网 发布:酷家乐家装设计软件 编辑:程序博客网 时间:2024/06/06 04:42

用指针操作字符串与操作数组是差不多的.对于字符串的特殊部分如下

//指针操作字符串的操作相当于操作数组#include <stdio.h>void test();void test2();int main(int argc,char *argv[]){test2();}void test(){//定义一个字符串常量//因为指针指向的是一个地址, 即p的地址是'l'的地址const char *p="lwb";//定义一个字符串变量 并赋予指针char array[]="lwb";char *p2=array;}//利用指针遍历字符串void test2(){char array[6]="linwb";char *p=array;int i = 0;for (; array[i]!='\0'; i++){printf("%c\n",*(p++));}}

有时候经常需要使用指针去替代函数的使用.其函数指针的简单语法如下:

#include <stdio.h>void test();int test2();int main(int argc,char *argv[]){test();}//利用指针指向函数void test(){//一般对象类比char a='A';char *p;int (*p2)(int);//1.创建一个指向test2()的指针//指针对象的调用p=&a;printf("%c\n",*p);//指针函数的调用p2=test2;//2.利用指针运行该函数,函数名代表函数的地址printf("%d\n",(*p2)(2));//3.取出指针返回值}int test2(int args){return args+2;}

我们经常过的设计模式中使用的指针函数例子:

#include <stdio.h>int add(int ,int);int minus(int ,int);int calculate(int,int,int (*p)(int,int));int main(int argc,char *argv[]){int result;result=calculate(5,2,minus);printf("%d\n",result);}//利用指针函数实现的策略模式下int calculate(int a,int b,int (*p)(int,int)){return p(a,b);}//算法2int add(int a,int b){return a+b;}//算法1int minus(int a,int b){return a-b;}


0 0
原创粉丝点击