《C Primer Plus》学习day1

《C Primer Plus》学习day1

关于scanf函数被忽略的问题

    VS2022可以直接使用scanf_s函数来代替,因为它认为scanf_s函数是一个更为安全的函数;当然,也可以更改设置,如下图所示,改为禁用安全检查,我选择了后者。
在这里插入图片描述

目标文件与可执行文件

目标文件:由机器语言指令组成。只包含编译器为你编写的代码翻译的机器语言代码。缺少启动代码和库函数的代码。
可执行文件:链接器会将你编写的目标文件代码、系统的标准启动代码和裤代码3部分合成一个文件。库代码只会把程序中要用到的库函数代码提取出来。

启动代码:充当程序与操作系统之间的接口。

getchar()函数

getchar()函数的作用是从计算机终端(一般为键盘)输入一个字符。用来让程序暂停(读取一次Enter键的按下)

#include <stdio.h>
int main()
{
	char a, b;
	a = getchar();
	b = getchar();
	putchar(a);
	putchar(b);
	
	return 0;
}

若输入x-回车,缓冲区中有两个字符(x和回车),同时回车为确认键,所以字符开始被逐个getchar()按顺序读入,因此a中应该是‘x’,b中应该是回车。

目前我对于getchar()函数的理解:
从键盘不管输入多少字符,都依次排队进入缓存区,直到遇见Enter键(Enter键排在最末尾),每一个getchar()会按照顺序读入。

函数原型声明

在这里插入图片描述

%mf和%.mf

  • %mf中,m表示输出的整个数据一共有m位,但实际位数大于m时,m失效。例如,f=1.23456,%2f则输出1.234560(默认6位小数);%10f则输出uu1.234560(u表示空格),即用空格从8位补到十位。
  • %.mf中,m表示保留小数点后m位(四舍五入),如上例,若%.2f则输出1.23。

浮点数和整数的存储方案

  • 整数:以二进制方式储存。例如7就存储为00000111
  • 浮点数:分为小数部分和指数部分来表示,并分开存储,一部分存储符号位,一部分存储小数部分,一部分存储指数部分(参考计组的内容)

打印int值

%d指明了一行中打印整数的位置,%d称为转换说明*。格式化字符串中的每个%d都与一个int值相匹配。要确保转换说明的数量与待打印值的数量相同
若不相同:

#include <stdio.h>

int main(void)
{
	int ten = 10;
	int two = 2;

	printf("%d minus %d is %d.\n", ten, 2, ten - two);
	printf("%d minus %d is %d.\n", ten);

	return 0;
}

在这里插入图片描述
第一行输出正确,第二行后两个打印出的是内存中的任意值

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值