iOS_05_变量的内存分析、Scanf函数

一、变量的内存分析

  1.字节和地址

    * 为了更好地理解变量在内存中得存储细节,先来认识一下内存中得”字节“和”地址“。

    * 内存以字节为单位

    * 不同类型占用的字节是不一样的,数据越大,所需的字节数九越多

  2.变量存储

    * 所占用的字节数跟类型有关,也跟编译器环境有关

    

  16位编译器 32位编译器 64位编译器
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8

     * 变量实例

       int b =10;

     int a = 20;

      # 内存由大到小寻址,优先分配内存地址较大字节给变量。b的内存地址比a大;

      # 每个变量都有地址:第一个字节的地址就是变量的地址;

    *查看内存地址

      int a;

      printf("a 的地址是:%p ",a);

二、scanf函数

  1、简介

    这是在stdio.h 中声明的一个函数,因此使用前必须加入#include<stdio.h>.调用scanf函数时,需要传入变量的地址作为参数,scanf 函数会等到标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量;

  2、简单用法

    int age;

    scanf("%d",&age);

    * 调用scanf函数时,会等待用户的键盘输入,并不会往后执行代码。scanf的第1个参数是”%d“,说明要求用户以10进制的形式输入一个整数。这里要注意,scanf的第2个参数传递的不是age变量,而是age变量的地址&age,&是C语言中得一个地址运算符,可以用来获取变量的地址

    * 输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,scanf函数嘿将输入的值赋值给age变量。

  3、其他用法

    *用scanf函数接收3个数值,每个数值之间用中划-隔开

      scanf("%d-%d-%d",&a,&b,&c);

    3个%d之间是用中划线-隔开的,因此我们在每输入一个整数后都必须价格中划线-,比如这样输入 10-14-20,不然在给变量赋值的时候会出问题。

 

原文地址:https://www.cnblogs.com/-ljj/p/3710637.html