C语言指针的实验说明

来源:岁月联盟 编辑:猪蛋儿 时间:2011-12-17

<div align="left"><pre class="cpp" name="code">上午上《编译原理》的时候听老师谈到了C语言的指针的问题,有些疑问,所以回到宿舍进行了实验验证。 

<p>当函数参数是个指针的时候,当调用这个函数时,此函数的形参的得到的是指针本身,还是他的一个副本?如下代码:</p><p>#include "stdio.h" 
 
void change1(int* d) 

    printf("address_d = %d  d = %d  *d = %d/n", &d, d, *d); 
    int s = 4; 
    d = &s; 
    printf("address_d = %d  d = %d  *d = %d/n",&d, d, *d); 

 
void change2(int *e) 

    *e = 5; 

 
int main() 

    int *p(NULL); 
    int *q(NULL); 
    int a(1); 
    while(a) 
    { 
        scanf("%d", &a); 
        printf("address_a = %d  a = %d/n", &a, a); 
        p = &a; 
        q = p; 
                printf("address_P = %d  p = %d  *p = %d/n", &p, p, *p); 
                printf("address_q = %d  q = %d  *q = %d/n", &q, q, *q); 
        change1(q); 
                printf("address_q = %d  q = %d  *q = %d/n", &q, q, *q); 
        change2(q); 
        printf("address_a = %d  a = %d/n", &a, a); 
        printf("address_q = %d  q = %d  *q = %d/n", &q, q, *q); 
                printf("address_P = %d  p = %d  *p = %d/n", &p, p, *p); 
    } 

</p> 

作者 wche1990

图片内容