这个不是传址么?为什么值还是过不来?
#include <stdio.h>void po(char *pt){
pt+=3;
}
void main(){
char *pt,str[]="adcd";
pt=str;
po(pt);
printf("%s",pt);
}
本质上C语言只传值,不传址!
要达你的目的,可改成
#include <stdio.h>
void po(char **p){
*p+=3;
}
void main(){
char *pt,str[]="adcd";
pt=str;
po(&pt);
printf("%s",pt);
}
当初通过函数交换一对普通变量的值:
swap(&a,&b) ==> void swap(int *p,int *q)
如今想改变指针变量的值,势必要涉及 char **p
han2y进步快。楼主接受上面这个也许容易理解一些。