首页 > 试题广场 >

#include using names...

[填空题]
#include <iostream>
using namespace std;
void fun(char *a, char *b) {
    a = b;
    (*a)++;
}
int main( ) {
    char c1, c2, *p1, *p2;
    c1 = 'A';
    c2 = 'a';
    p1 = &c1;
    p2 = &c2;
    fun(p1, p2);
    cout << c1 << c2 << endl;
    return 0;
}

输出:1
考察指针。
发表于 2019-09-27 17:21:54 回复(3)
void fun(char *a, char *b) {
    a = b;
    (*a)++;
}
fun函数中其实是按值传递。
假设c1的地址为4c,c2的地址为4a,所以p1=4c,p2=4a
 在fun函数中:a=b这句a的地址为4a,
(*a)++就是取4a的地址上的数据加1。
跳出fun函数后,c1=4c c2=4a
但是4c上的值还为A而4a上的值变为了b

发表于 2019-08-18 10:31:38 回复(4)