C语言之&(取地址符)的使用

1.

&是地址符,任何变量都可以使用&来获取地址,但是不能用在常量上。因为常量不是一个容器

2.局部变量的地址是不确定的,只有在运行的时候才能确定下来

3.&变量 的类型

如三个变量:

char a;   // &a  会被视为 char *
short* b;     // &b 会被视为 short **    
int ** c;     // &c 会被视为  int ***

 即取地址符加上一个变量的结果就是该变量的类型加上一个*

4.指针变量赋值

由上面可做出如下赋值

#include<stdio.h>

void main() {
    char x;
    char* p1;
    char** p2;
    char*** p3;
    char**** p4;

    p1 = &x;    // char *
    p2 = &p1;    // char **
    p3 = &p2;    // char ***
    p4 = &p3;    // char ****

    return ;
}

 每次&p以后,char后面都会多一个*,因此可以这么赋值。

原文地址:https://www.cnblogs.com/codexlx/p/13436950.html