有以下程序: #include #include #include main() {char*p1,*p2; p1=p2=(char*)malloc(sizeof(char)*10); strcpy(

admin2017-01-11  6

问题 有以下程序:
    #include
    #include
    #include
    main()
    {char*p1,*p2;
    p1=p2=(char*)malloc(sizeof(char)*10);
    strcpy(p1,"malloc’);
    strcpy(p2,p1+1);
    printf("%c%c\n",p1[0],p2[0]);
    }
    程序的运行结果是(    )。

选项 A、aa
B、mlt
C、am
D、mm

答案A

解析 程序执行过程为:定义两个字符类型指针p1和p2,动态开辟10个字符类型的内存单元,并且使指针p1与p2均指向这10个内存单元的第一个单元。调用strcpy函数,将字符串”malloc”赋值给这10个内存单元的前7个单元,存储情况为:malloc\0。再次调用strcpy函数,这10个内存单元的第2个到第7个单元元素重新赋值给p2指向的内存单元以及以后的5个单元,存储情况为:alloc\0\0。输出两个指针指向单元的数据值,结果为:aa。
转载请注明原文地址:https://jikaoti.com/ti/mwkiFFFM
0

相关试题推荐
最新回复(0)