首页 > 代码库 > 指针 &取地址标志

指针 &取地址标志

char * a1;
short * b1;
int * c1;
long * d1;

只要带有*号,都占4个字节,不管*号多少个都是一样。

要查看一个变量的所占的类型,就把变量名去掉,就是它所占的类型。
如:int a[10]  把a 去掉,就成 int [10]
    char * a1  把a1去掉,就是 char * 类型了

#include "stdafx.h"
struct   age
{
    char d;
    short f;
    int g;

};     //此处三个加起来是占8个字节 

int main(int argc, char* argv[])
{
    age aa;
 
   printf("Hello World!\n");
    return 0;
}

#include "stdafx.h"

int main(int argc, char* argv[])
{
   
     char d;
    short f;
     int g;  
此处三个加起来是占12个字节 
   printf("Hello World!\n");
    return 0;
}
原来里面还包含这个信息,一定要注意!
结构体是把不同的类型放在一起,并填充完空间,而在MAIN函数是给每一个类型指定了4个字节。这个一定要记住。
 取地址
a1=&a;// &取地址

相当于lea 指令 lea eax,dword ptr[a]

    char a;
    short b;
    int c;   
    char f;

 
    char *** a1;  // 三个*类型  把变量名去掉,就是他的类型,
    short ** b1;
     int ** c1;
     long * d1;

    a=1;
    b=2;
    c=3;

    a1=&c;//&取地址;
    f=*a1;//此处的*a1是什么类型呢?是char*类型 
000

#include "stdafx.h"

int main(int argc, char* argv[])
{

    char a;
    short b;
    int c;   
    char f;

 
    char *** a1;  // 三个*类型  把变量名去掉,就是他的类型,
    short ** b1;
     int ** c1;
     long * d1;

    a=1;
    b=2;
    c=3;

    a1=&c;//&取地址;
    f=*a1;//此处的*a1是什么类型呢?是char*类型 

    a1++;  //是加1  
    b1++;  //加2
    c1++;  //加4
    d1++;  //加4

    return 0;
}


来自为知笔记(Wiz)