Linux C语言进阶-D14指针函数

指针函数:指一个函数的返回值为地址量的函数

        <数据类型>*  <函数名称>(<参数说明>) {

                语句序列;

}

返回值:全部变量的地址、静态变量的地址、字符串常量的地址、堆上的地址

注意:不可返回局部变量的地址

下面的程序返回的是一个局部变量的地址,错误

Linux C语言进阶-D14指针函数_第1张图片

 解决方法:

        全局变量、静态变量、字符串常量,替换局部变量

        但要注意字符串常量是常量,不可被修改char * str = "hello";

编写一个指针函数,删除一个字符串中的空格

并且要注意:result是一个局部变量,指针函数为什么还可以返回?

        其所承接的是p1所保存的地址,p1保存的是main函数中a的地址,所以虽然del_space函数结束了,但是main函数中a的地址还在,所以是可以返回的。

Linux C语言进阶-D14指针函数_第2张图片

 编写一个指针函数,实现字符串连接

Linux C语言进阶-D14指针函数_第3张图片

简化程序:

 程序执行会有优先级,其中1中的*dest优先级更高会先进行判断,然后再进行+1

由于最后多+1,所以要再-1

其中2中的先赋值*dest = *src,再判断,再各自+1

所以由于是先赋值,最后27行就不需要了

这个代码输出会有警告,不过问题不大

Linux C语言进阶-D14指针函数_第4张图片

 编写程序,输入数字后输出相应字符串

有个库函数是atoi:将字符串转换成数字

实现的函数是itoa

将数字变为字符就是数字+'0'

Linux C语言进阶-D14指针函数_第5张图片

你可能感兴趣的:(Linux,c语言,c语言,开发语言)