C语言的指针和函数
科技
科技
2024-11-30 09:02
广东
采用swap函数,指针传递数据,实现数据交换,传递指针,则数据能被修改。值不能被修改,只传递了数据的地址,避免复制大量的地址举例:实现功能,将一个字符串保存在一个数组中,并将字符串的长度保存在数组的前两个字节中。输出结果:00 08 4d 51 54 54 43 4f 41 50 00 00 00 00 00 00 00 00 00 00 字符对应的十六进制值。第10行中,writeCString()函数,传递了const char *string ,传递字符串的地址,只传递了数据,而不修改数据的;传递了unsigned char* pptr,传递指针,用于修改地址中的值。如果想要修改原指针而不是修改指针的副本,就需要传递指针的指针。如果要在函数中修改变量的值,就要把变量的地址传给函数;如果变量是普通变量,就传普通变量的地址,如果变量是指针变量,就传指针变量的地址。writeCString()函数和writeInit()函数分别传递了unsigned char **pptr;是二级指针,是指向数组地址的指针。通过定义函数指针方式,实现函数的调用;使用typedef定义函数指针类型,实现函数调用。第5行:typedef定义相同类型的函数指针,int (*)(int)类型,使用是看作一个数据类型即可,将这个数据类型取别名为funcptr第13行:compute()函数,传递了函数指针, 定义了一个fptrOperation 类型的函数指针,用于灵活调用add()和 substract() 两个函数, 同时传递给函数所需的参数。实现和上边同样的运算,采用返回函数指针,调用方式不同,实现功能相同。第14行:返回fptrOperation类型的函数指针根据某写条件,选择要执行的函数,把函数值针声明为数组的类型即可转换函数指针:需要谨慎使用,因为运行时系统不会验证函数指针参数的正确性。比较函数指针:可以用相等(==)和不等(!=)操作符来比较函数指针 。
免费申请开发板
(请备注来意,加群请备注城市-称呼-行业岗位信息)