A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谁想去飞 中级黑马   /  2014-11-20 21:45  /  1406 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


      基本数据类型   指针类型  空类型void  构造类型   定义类型typedef

基本数据类型

      1)整型

         int  4      short   long

      2) 实数型

         float 4
         double 8

      3)字符型

         常量  4
         变量  1

变量:

     代表的时一块存储区域,通过变量名可以取得变量的值


内存:

     由若干个1个字节大小的单元组成的,每个单元有唯一的一个地址,可以存放数据

     内存的特点:

        掉电  数据就丢失了

变量存放在 内存中,不同类型的变量占用的空间是不一样的。



1、变量的地址


       变量在内存中存放数据的第一个字节的地址,就是变量的地址

       变量的首地址


      1)如何获取变量的地址

       int  num;
       scanf("%d",&num);    // & 获取变量的地址

      2)打印变量的地址

       %p  格式控制符

       可以输出一个地址

       printf("&num = %p",&num);


  2、变量在内存中如何进行存储的


       1)先定义的变量分配的时高地址

       2)后定义的变量分配的是低地址

       3)当定义多个变量的时候,多个变量的地址可以不连续

          但是某一个变量内部的地址一定是连续的


       4)一个变量的内存存放细节

         高                              低位
         00000000 00000000 00000000 00001010

         低位存放在地地址字节
         高位存放在高地址字节

         变量的首地址就是 变量低位存放的地址(低地址)

         00000000 00000000 00000001 00001010    = 266





#include <stdio.h>

void test(){


    int num;
    //&num 获取变量num的地址,获取num的首地址
    scanf("%d",&num);
    printf("num = %d,&num = %p\n",num,&num);
}

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

    int a=266;
    int b = 261;
    char ch='a';

    printf("a的地址 = %p\n",&a);
    printf("b的地址 = %p\n",&b);
    printf("c的地址 = %p\n",&ch);

    char *p = &b;
    printf("第一个字节:%d\n",*p);
    printf("第二个字节:%d\n",*(p+1));
    printf("第三个字节:%d\n",*(p+2));
    printf("第四个字节:%d\n",*(p+3));

    return 0;
}


1 个回复

倒序浏览
顶一个!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马