通过指针调用,修改了数值。
创新互联公司是一家专业提供五家渠企业网站建设,专注与成都做网站、网站设计、成都h5网站建设、小程序制作等业务。10年已为五家渠众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
++*x,++*y对指针指向的值进行了修改,所以值增加了1,
*(z++)输出z的之后,对指针本身的地址增加一个int的偏移,但是函数返回时,指针本身的修改被丢弃,所以每次结果一致。
使用void prt(int*x,int*y,int*z)这样的接口,指针本身不变更不可保存,但是指针指向的值的变化会被记录下来的。
一个函数只能有一个返回值,指针可以返回多个,例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面调用 *a和*c.
扩展资料:
在C语言中,指针的使用非常广泛,因为使用指针往往可以生成更高效、更紧凑的代码。总的来说,使用指针有如下好处:
1、指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2、C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3、C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。
参考资料来源:百度百科-指针 (编程语言中的一个对象)
void hello()
{
printf("hello\n");
}
void world()
{
for (int i = 0; i 10; i++)
hello();
printf("world\n");
}
这个问题很常见,正是因为使用了getchar()函数,getchar()函数只会从标准输入缓冲区中读取一个字节,剩下的还留在缓冲区,比如你输入"a",那么getchar()函数值读取'a',而不会处理你按下的回车,也就是'\n'还留在标准输入缓冲区,那么,等第二次调用getchar()的时候,由于缓冲区里还有1个字节的'\n'未使用,故getchar()会使用字符'\n'而不会阻塞等待输入
建议在第二个getchar()前加上一句:
fflush(stdin);