• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

悠悠客

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

指针 &取地址标志

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)


posted on 2014-04-27 14:01  悠悠客  阅读(611)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3