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; }