C语言Scanf函数

简介: C语言的scanf函数 一、变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节)。

 

C语言的scanf函数

一、变量的内存分析

(一)字节与地址

①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节)。相邻房间的房号是连续的,相邻字节的地址也是连续的。计算机中通常以十六进制表示地址。

②. 不同类型占用的字节是不一样的,数据越大则占用的字节数越多。如在64位编译器下,int类型占据4个字节,char类型占据1个字节。

(二)变量的存储

重点:内存寻址由大到小,优先分配内存地址较大的字节给变量,所以一般而言越先定义的变量,其内存地址越大。

假设:int a=1;int b=2;下面是对其进行的模拟内存分析。

 

&是取址运算符,用来获取地址。

%p这个占位符用来输出地址。

未经初始化的变量,它的值是不确定的,而C语言是弱类型的语言,如果不对一个变量进行初始化并不会报错,所以提醒变量在使用之前一定要进行初始化。

 

二、Scanf函数

(一)基本介绍

Scanf是系统自带的函数,声明包含在stdio.h文件中,因此要是有该函数,必须加载#include<stdio.h>头文件。当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名。是一个阻塞式的函数,2用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲回车键告知计算机键入完毕。

(二)使用注意

①. 使用scanf函数输入一个字符变量。Char a; scanf(“%c”,&a);

②. 同时输入多个值。Scanf(“%d,%d”,&num1,num2); 

③. Scanf(“%d\n”,&a);//在内部不能使用\n转义字符,否则没完没了。

 

注意:在这里两个占位符之间是,隔开,则要求在输入时也使用逗号隔开如输入1,2。此时为num1=1,num2=2。若内部为“%d#%d”则输入1#2。若内部为“%dy%d”,则输入1y2。如果中间的字符是空格,则在输入时可以用空格隔开,也可以敲tab键或者是回车键作为分隔符隔开,后两者可以看做是由空格组成的。

 

目录
相关文章
|
C语言
C语言scanf函数详细解释
C语言scanf函数详细解释
|
C语言 编译器 存储
|
C语言
c语言中scanf()、printf()函数
  函数调用scanf(“%d”,  &weight) 包含两个参数:“%d” 和&weight。C用逗号来隔开函数调用中的多个参数; 但是printf()和scanf()函数比较特殊,其函数数目可以不受控制。
844 0
|
13天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
24 0
|
24天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
24天前
|
编译器 C语言 C++
【C语言】memcpy()函数(内存块拷贝函数)
【C语言】memcpy()函数(内存块拷贝函数)
41 0
|
25天前
|
C语言 C++
【C语言】rand()函数(如何生成指定范围随机数)
【C语言】rand()函数(如何生成指定范围随机数)
16 0
|
13天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
35 0