问题
单项选择题
有以下程序:
#include <stdio.h>
point ( char * p) p + = 3;
main( )
char b[4] = 'a','b','c','d' , *p=b;
point(p);
printf( "% c \n" , * p);
A.a
B.b
C.c
D.d
答案
参考答案:A
解析: C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。