发布网友 发布时间:2024-10-10 07:16
共2个回答
热心网友 时间:2024-10-10 07:42
指针概念不清晰。
a,b两个分别存放了字符串。
假如a的地址为 0x10000000
b 的地址为 0x20000000
p 是一个指针,指向某个地址。
p=a 指向a的地址
p=p+l1 在a的地址偏移 l1 个单位
p=b; 指向 b的地址
p=p-l1; 在b的地址偏移 l1 个单位(野指针,不知道指向哪里了!!!)
for(i=0;i<(l1+l2);i++)
printf("%c",*(p+i));
i 从 0 到 l1 这个内存不知道存放什么东西。打印出来是乱码!!
l1 往后偏移 l2个单位就是b存储字符串的地方,所以打印出b字符串了!
-------------------------------------------------------分割线----------------------------------
再分析实现功能,实现两个字符串的连接!
你这段代码只能说是打印语句,不是连接语句!!
这样打印,还不如直接这样:
for(i=0;i<l1;i++)连接的话,应该要有一个空间保存!
以下仅供参考!
gets(a);热心网友 时间:2024-10-10 07:38
你输入的信息必须大于两个字符怎么写