指针的移动

想要在函数内改变指针的指向,要给函数传入指针的指针,才能改变指针的指向

也就是传入指针的地址才能改变指针

问题和函数传值不改变该值在主函数本质上应该是一样的(之前没注意想…傻了大概)

#include<stdio.h>
void move(char* p)
{
	printf("%p\n", p);
	printf("%s\n", p);
	p++;
	printf("%p\n", p);
	printf("%s\n", p);
	*p++;
	printf("%p\n", p);
	printf("%s\n\n", p);


}
int main()
{
	char str[10] = { "abcdefgh" };
	char* p = str;
	printf("bofore,main:%c\n", *p);
	printf("before,main:%p\n", p);
	printf("before,main:%s\n\n", p);
	move(p);
	printf("after,main:%c\n", *p);
	printf("after,main:%s\n", p);
	printf("after,main:%p\n\n", p);
	p++;
	printf("after,main:%c\n", *p);
	printf("after,main:%s\n", p);
	printf("after,main:%p\n\n", p);
	*p++;
	printf("after,main:%c\n", *p);
	printf("after,main:%s\n", p);
	printf("after,main:%p\n", p);
	

}

bofore,main:a
before,main:00AFFD84
before,main:abcdefgh

00AFFD84
abcdefgh
00AFFD85
bcdefgh
00AFFD86
cdefgh

after,main:a
after,main:abcdefgh
after,main:00AFFD84

after,main:b
after,main:bcdefgh
after,main:00AFFD85

after,main:c
after,main:cdefgh
after,main:00AFFD86

posted on 2021-01-06 20:02  不依法度  阅读(38)  评论(0)    收藏  举报

导航