c語言中取址運算符、指針運算符


1、單目運算符&為取址運算符,其作用是獲取對象的地址,生成指向對象的指針,與其說是獲取地址,不如說是生成指針。對象地址的轉換說明為%p,其中的p為pointer的首字母。

#include <stdio.h>

int main(void)
{
    int n;
    double x;
    int a[3];
    
    printf("nnnn:   %p\n",  &n);
    printf("xxxx:   %p\n",  &x);
    printf("a[0]:   %p\n",  &a[0]);
    printf("a[1]:   %p\n",  &a[1]);
    printf("a[2]:   %p\n",  &a[2]);
    
    return 0;
}

 

 

2、單目運算符*為指針運算符

#include <stdio.h>

int main(void)
{
    int a = 100;
    int b = 200;
    int c = 500;
    
    int *x, *y;  //聲明指向int型的指針變量
    
    x = &a;     // 生成指針x、y,x為指向對象a的指針, y為指向c的指針
    y = &c;
    
    printf("xxxx:   %d\n", *x);     //指針運算符加指針可以獲取該指針指向的對象, *x可以獲取指針x指向的對象,即對象a。 同理,*y獲取對象c。
    printf("yyyy:   %d\n", *y);
    putchar('\n');    
    
    x = &b;    //修改x的指針
    *y = 800;  // y為指向c的指針, *y相當於c的別名,對*y修改,相當於對對象c進行修改
    
    printf("aaaa:    %d\n", a);
    printf("bbbb:    %d\n", b);
    printf("cccc:    %d\n", c);
    printf("xxxx:    %d\n", *x);
    printf("yyyy:    %d\n", *y);
    
    return 0;    
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM