有以下程序 #include <stdio.h> void fun(char*c,int d) { *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } int main(void) { char b='a',a='A'; fun(&b,a); printf("%c,%c\n",b,a); return 0; }
时间: 2024-04-04 15:34:15 浏览: 71
#include <stdio.h>
这段程序的输出结果是:
B,B,a,B
解释如下:
fun(&b,a)中,&b是b的地址,传入函数后c指向b的地址,因此*c的值为'a'。a的值为'A',传入函数后d被赋值为'A'的ASCII码值65。
在fun函数中,将*c的值加1,即'a'变成'b',d的值加1,即65变成66。因此第一个printf输出为:B,B,(注意%c输出的是字符,66对应的字符为B)。
在main函数中,b的值变成了'B',而a的值没有改变,仍为'A',因此第二个printf输出为:B,A。
阅读全文