c语言point函数 c语言中point的用法

c语言一道题求解

因为你传递的是p的值,在point中被更改的只是p的一个拷贝,而不是p本身。在main函数中的p一直没变过

成都创新互联是一家从事企业网站建设、网站制作、成都网站制作、行业门户网站建设、网页设计制作的专业网络公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点近千家。

如果你改成这样就可以修改p本身的值了:

#include stdio.h

void point(char**p)

{*p+=3;}

int main()

{char b[4]={'a','b','c','d'},*p=b;

point(p);

printf("%c\n",*p);

}

C语言 point(char*pt); main() {char b[4]={'a','c','s','f'},*pt=b; pt=point(pt); printf("%c

就算函数调用成功,输出也为d,而不是a,数组下标是从0开始.

被调函数的计算结果在离开函数大括号后就已经不在了,

回到主函数的变量p并不是调用函数后的计算结果,p仍然是

数组b的首地址,所以输出是a.

char

*p;//定义全局变量

point(char

*c)

{

p=c+3;

}//全局变量返回计算结果

main()

{

char

b[4]={'a','b','c','d'};

p=b;//p为数组首地址

point(p

);//调用函数,地址加3

printf("%c\n

",

*p);//输出为b[3]

}

void point(char *p){p+=3;} void main() { char b[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p

程序最后一句如果是:printf("%c\n",*p); 输出 a。

point函数的功能:使传入的指针偏移三个单位。

当你在main函数中调用point函数,将p指针的值传给point函数进行偏移。

在程序运行中当执行一个函数时都是开辟一段空间让函数执行,当执行完毕之后程序就会收回这段空间。

所以说当你执行完point之后程序就收回了空间,所以在point函数中的p的值增加了3.但是当这个函数执行结束后这段空间就被释放了,所以在main函数中p的值不变,所以打印出来得还是 a。


文章标题:c语言point函数 c语言中point的用法
文章源于:http://scyanting.com/article/ddgoioe.html