变量的地址:
每个变量都对应一块内存空间,计算机每一个空间都有唯一的一个标志代表着,本质是一个数,从0开始到很大的一个数,32位程序是2ˆ32-1,64位程序是2ˆ64-1。这个数就是地址,就像我们家的地址一样。

#include<stdio.h>
int main(void)
{
int a = 12;
printf("%p\n",&a);
system("pause");
return 0;
}
&表示取地址,%p表示打印16进制的地址
注意,这个地址值,不同的编译器结果都可能 不一样,同一台电脑同一个编译器,再次编译结果也可能 不一样,内存随机分配。
学会了打印(也就是输出),能在程序中打印变量的值了,但也只能打印我们事先在程序中写好的值。
能不能在程序过程中自己手动用键盘输入变量的值,再打印出来呢?
这时我们就要学习scanf()标准输入函数。格式如下:
scanf("%d",&a);
&是取址符。
scanf("%d",&a);的意思就是你从键盘输入一个整型变量的值,它会自动存放到变量a那个地址。也就是它会找到那个标记为a的盒子,然后把值放进去。
为什么printf()没&,因为它是直接输出,a变量的地址已经事先知道,而scanf() 我们输入数据都是直接输入到内存里的。变量a的值从外部获取,得先知道变量a的地址,知道地址你才好把值放进去。且标准输入函数的格式需要,后面要的是地址信息。
每个变量名都有对应的地址,变量名只是地址的别名,就好像外号一样,之所以用变量名而不用地址名,因为变量名比地址名好记,方便,而地址名是数字,你不可能知道什么是什么
扯远了,内存地址在学指针的时候你就会知道,现在先别管这些,知道太细反而越弄越糊涂

本文介绍了C语言中变量的地址概念,强调了地址的唯一性和不可预测性。接着讲解了scanf()函数的使用,包括格式化的输入方式以及在不同情况下如何正确输入数据。特别指出在使用scanf()时,除字符串格式外,其他类型变量前需加&,并且不应在格式字符串中包含逗号或换行符。文章还分析了在输入字符变量时可能出现的问题及解决方案。

751

被折叠的 条评论
为什么被折叠?



