指针 &取地址标志
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;
}