黑马程序员—C语言—基本语法printf与scanf

时间:2022-08-27 10:15:32

————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ————————

由于本科期间C语言已经学习过,所以有一些简单地常识性的问题在此就不在赘述。只将一些细节方面容易忘记或者不太容易搞懂的问题记录在此。

一、32个关键字(无需死记,后面都会一一讲到)

autodouble、int、structbreak、else、long、switch、caseenumregistertypedefchar、externreturn、union、constfloatshortunsignedcontinue、for、signed、void、default、goto、sizeof、volatile、do、if、while、static;

在Xcode中,关键字打出来时,颜色会变为深褐色提示。这个功能极大的方便了我们检查关键字是否拼错。

二、标识符

命名规则:(很基础很重要,一定要记住)

(1)只能由26个大写或小写的英文字母,0~9十个数字和下划线_组成

(2)严格区分大小写

(3)不能以数字开头,只能以字母或者下划线_开头

(4)不能用key作标示符

命名规范:

(1)尽量起一个有意义的名称,让人一看就懂你定义的变量是什么意思

(2)多个单词时,我们可以用驼峰法playMusic()或者下划线法play_music(),我个人比较喜欢用驼峰法

三、数据

数据分为两大类:动态数据和静态数据。动态数据,即临时数据,它在一断电的情况下,内存中的数据就会被清除。而静态数据则是永久性的数据,并以文件的形式存储在硬盘中。

数据的大小:1TB = 1024GB;1GB = 1024MB; 1MB = 1024KB; 1KB = 1024B; 1Byte = 8bit

问题:那么为什么要这么关注数据呢?

关注数据的变化是为了更好地分配存储空间,为了节约存储空间。

四、printf与scanf的用法

printf和scanf函数为重要的文字交互函数,printf用于输出字符串,scanf用于扫描用户输入,是终端界面最常用的两个函数。

这两个函数都包含在stdio.h标准输入输出头文件中,在使用中需要包含。

在学习这两个函数前,我们先要了解一下字符串。 1、字符串的认识 在c语言中没有字符串的概念,我们所接触到的基本数据类型中只有int、char、Bool、float、double等类型,而字符串是由一系列的字符所组成,为了表示字符串,需要用到字符数组,在一个字符数组中,前面的元素为char类型(各占8个bit),最后一位存储一个结束标志\0,这样以来,程序就可以通过这个字符数组的首地址(数组名标识符)和结束标志(\0)从内存中读取该字符串。 2、占位符的认识 占位符是一种特殊的运算,用于将一些其他数据类型的数据转换为特殊的字符格式,嵌入到某个字符串中。有如下几种:

占位符 作用
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X  读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F
%e,%E
%g,%G
用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号

3、printf函数 该函数接受一个字符串作为参数,其作用是将传入的字符串打印在终端窗口上。 字符串可以包含占位符。 举例如下:
#include <stdio.h>  

//程序入口(主函数)
int main()
{
int count=100;
char grade='B';
float height=1.78f;
double pi=3.141592654;

//输出整数,%d也可
printf("数量为 %i \n",count);

//输出字符
printf("等级为 %c \n",grade);

//输出两位小数,默认6位
printf("身高为 %.2f 米\n",height);

//输出多位小数,.10表示总共10位数
printf("圆周率 %.10g \n",pi);

return 0;
}

4、scanf函数scanf函数用于获取用户输入数据,并存储到内存变量中。该函数需要接受两种参数,一种是占位字串,用于表示输入数据格式,一种是内存单元的地址,用于存储输入的数据。为此我们定义相应的变量用于储存用户输入
int a;   
然后调用函数scanf,并设置合适的输入格式:
scanf("%d",&a); 
5、平时编程有感1、scanf要求用户输入数据,不会有任何提示,为了交互性的考虑,需要用printf函数进行必要的提示;2、用户输入的数据不一定复合格式,要设置必要的检查环节,确保用户输入正确的数据;3、printf多用于程序的调试,要合理运用。