字符串与指针
#include<stdio.h>int main()
{
char nb(char *a,char *b);
char *a="shdajsdg",b="dadsdas";
printf("%s\n\n%s\n",a,b);
nb(a,b);
//printf("%s\n",b); printf放这里可以实现打印为什么放下面的那个就不行了
return 0;
}
char nb(char *a,char *b)
{
while((*b++=*a++)!='\0');
{
;
}
//printf("%s\n",b); 放这里打不出来
}
char nb(char *a,char *b)
{
while((*b++=*a++)!='\0');
{
;
}
//printf("%s\n",b); 放这里打不出来
}
你想给一个指针赋值,直接这样就好,不必这么麻烦
b = a; 大马强 发表于 2022-3-7 21:00
你想给一个指针赋值,直接这样就好,不必这么麻烦
我是在copy,不是在赋值,我就想知道它们俩为什么不一样 无聊卷旅 发表于 2022-3-7 21:11
我是在copy,不是在赋值,我就想知道它们俩为什么不一样
b一直++,都指到 '\0' 后面去了,还可以输出?
#include <stdio.h>
void nb(char *a, char *b) {
printf("==========%p\n", b);
printf("%s\n", b);
while((*b++ = *a++) != '\0');
printf("==========%p\n", b);
printf("%s\n", b);
}
int main() {
//char nb(char *a, char *b);
char *a = "shdajsdg", b = "dadsdas";
printf("%s\n\n%s\n", a, b);
nb(a, b);
// printf("%s\n",b); printf放这里可以实现打印为什么放下面的那个就不行了
return 0;
}
/*
char nb(char *a, char *b) {
while((*b++ = *a++) != '\0');
//{ ; } ???
// printf("%s\n",b); 放这里打不出来
//return ???
}
*/
人造人 发表于 2022-3-7 21:19
b一直++,都指到 '\0' 后面去了,还可以输出?
当*b++=*a++==‘0’时候不是为0,判断为假,停止运行。这样不对吗 无聊卷旅 发表于 2022-3-7 21:45
当*b++=*a++==‘0’时候不是为0,判断为假,停止运行。这样不对吗
执行这个代码,看一下输出结果,能不能理解 人造人 发表于 2022-3-7 21:46
执行这个代码,看一下输出结果,能不能理解
好的 人造人 发表于 2022-3-7 21:46
执行这个代码,看一下输出结果,能不能理解
感谢
页:
[1]