您好输複出结果为“制a2yz”。
strcat(a,c+1)相当于在a的末尾加上c[1]及其后面的部分也就是“yz”。故运行后a为“a2yz”
strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间返回值的类型为char*。
strcat把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)
的字符串复制到a[1]开始的字符串中,即a数组变为“a2”
strcat(char *, char *)函数表示将第二个参数开始的字符串接到第一个参数开始的字符串上,返回第┅个字符串的指针故strcat(a,c+1)表示将c[1]开始的字符串接到“a2”后面,a数组变成“a2yz”
最后用puts输出字符串。
本回答被提问者和网友采纳
把 b[2]开始的字符串拷贝到 a[1]开始的地址中
这时 a 中的字符串改变为 "a2"
然后将 c[1]开始的字符串拼接到a 中
此时 a中的字符串变为 a2yz;
strcpy 将第二个拷贝到第一个 即拷完以后a为a2\0 注意每个字符串最后都有个\0 然后 strcat 后a就是"a2yz"
最终输出结果为"a2yz"
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
这编博客是为了记录自己编程的惢路历程固件编程一直是自己的短板,身为一个硬件工程师偏偏经常接到写固件的活其实我的内心是拒绝的。但是这想让自己的短板变成平板并不冲突~所以该好好学就好好用功。总结的只是一些这段时间下来的心得~不喜请轻喷~有什么问题欢迎指出
(以下是基于stm32的编程)
编程中调用其它文件(如.c)中的参数,全局变量会产生相关性实时改变某一参数,通过调用函数的办法实现
不同位数变量之间的相互转换,注意存储顺序
中断函数:参数或数据写入队列->任务函数:从队列取出参数,调用解析数据函数
上面两个函数可写在一个.c函数中
写义一个struct就是用自己想要的方式来解析一组数据
数组命令匹配调用参数或者函数:
接收命令,调用对应函数
//在另一个文件中读取命令表
調用原始函数是一个很好的办法比如atoi();直接将char *所代表的123,转换成了int 的123!
//const 请作为常量使用并且肯定是个常量 通过指针可修改参数
//volatile 请不要做鈈靠谱的优化,这值很可能改变掉
1)在函数体一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外)一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问它是一个本地的全局变量。
3) 在模块内一个被聲明为静态的函数只可被这一模块内的其它函数调用。那就是这个函数被限制在声明它的模块的本地范围内使用。
int **a中a表示的是指针的地址也就是地址(指针所指对向的地址)的地址(指针的地址);*a则表示前一个地址,a则表示后一个地址
用到int **的情况是需要对指针的地址进行加减操作并且赋值的。
两个指针间或数组数据的互传
这编博客是为了记录自己编程的惢路历程固件编程一直是自己的短板,身为一个硬件工程师偏偏经常接到写固件的活其实我的内心是拒绝的。但是这想让自己的短板变成平板并不冲突~所以该好好学就好好用功。总结的只是一些这段时间下来的心得~不喜请轻喷~有什么问题欢迎指出
(以下是基于stm32的编程)
编程中调用其它文件(如.c)中的参数,全局变量会产生相关性实时改变某一参数,通过调用函数的办法实现
不同位数变量之间的相互转换,注意存储顺序
中断函数:参数或数据写入队列->任务函数:从队列取出参数,调用解析数据函数
上面两个函数可写在一个.c函数中
写义一个struct就是用自己想要的方式来解析一组数据
数组命令匹配调用参数或者函数:
接收命令,调用对应函数
//在另一个文件中读取命令表
調用原始函数是一个很好的办法比如atoi();直接将char *所代表的123,转换成了int 的123!
//const 请作为常量使用并且肯定是个常量 通过指针可修改参数
//volatile 请不要做鈈靠谱的优化,这值很可能改变掉
1)在函数体一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外)一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问它是一个本地的全局变量。
3) 在模块内一个被聲明为静态的函数只可被这一模块内的其它函数调用。那就是这个函数被限制在声明它的模块的本地范围内使用。
int **a中a表示的是指针的地址也就是地址(指针所指对向的地址)的地址(指针的地址);*a则表示前一个地址,a则表示后一个地址
用到int **的情况是需要对指针的地址进行加减操作并且赋值的。
两个指针间或数组数据的互传