C
未读
17-c语言printf函数和putchar函数
printf函数是C语言中用于格式化输出多种数据类型(如整数、字符串、浮点数等)的通用函数,需指定格式字符串和参数;而putchar函数仅用于输出单个字符,无需格式化,效率更高但功能单一。两者核心区别在于:printf支持复杂格式控制,适用于多类型数据输出;putchar专为简单字符输出设计,常用于
C
未读
16-c语言字符串常量
C语言字符串常量是用双引号(" ")定义的字符序列,存储时自动在末尾添加\0结束符,因此长度为实际字符数+1;它们存储在只读内存区(如RODATA),不可修改(尝试修改会导致未定义行为),与单引号表示的字符常量(长度恒为1)不同,字符串常量可正确用于初始化字符数组(如char s[] = "hell
C
未读
15-c语言类型限定符
C语言中,类型限定符(const、volatile、restrict、_Atomic)用于修饰变量的类型属性:const表示不可修改,volatile防止编译器优化(如硬件寄存器),restrict优化指针访问,_Atomic支持原子操作;而存储类说明符(extern、register、static
C
未读
14-计算机内存数值存储方式
计算机内存中数值的存储方式包括:整数采用补码表示以统一符号处理和简化运算,浮点数严格遵循IEEE 754标准分为符号位、指数位和有效数字位,而多字节数据的存储顺序由大小端字节序决定(小端如x86架构将低位字节存于低地址,大端如网络协议将高位字节存于低地址),这些机制共同构成计算机高效数据处理的基础,
C
未读
13-计算机内存数值存储方式-原码、反码、补码、以及数值溢出
计算机使用补码表示有符号整数,因为它能将减法转化为加法(只需CPU的加法器即可处理所有运算),解决了原码和反码中“0”表示不唯一的问题(补码中0只有1种表示),同时简化了硬件设计;数值溢出发生在两个正数相加结果为负或两个负数相加结果为正时(例如8位补码中127+1=-128)。 一、为什么需要不同的
C
未读
12-c语言进制的表现形式
C语言支持四种进制表示形式:二进制(以0b开头)、八进制(以0开头)、十六进制(以0x开头)和十进制(无前缀),这些形式源于计算机底层以二进制为基础的硬件处理机制,其中八进制和十六进制作为二进制的简写(便于表示长串二进制数据),显著提升了硬件编程效率和代码可读性,而十进制则符合人类日常习惯,共同优化
C
未读
11-十进制小数转二进制
十进制小数转换为二进制小数采用"乘以2取整,顺序排列"法:反复将小数部分乘以2,取整数部分(0或1)作为二进制位,保留小数部分继续运算,直至小数部分为零或达到所需精度;例如0.625转为0.101,但0.1等小数会无限循环(如0.000110011...),计算机中常需限定精度以避免无限循环,实际应
C
未读
09-c语言sizeof运算符
sizeof是C语言的编译时运算符,用于获取数据类型或对象的内存字节数(返回size_t类型),关键特性包括:数组名在sizeof中保留完整大小(不退化为指针)、结构体大小可能含填充字节、指针大小依赖系统位数(32位为4字节,64位为8字节);常用作计算数组元素个数(sizeof(arr)/size
C
未读
08-c语言scanf使用
C语言scanf函数需正确使用格式说明符(如%19s限制字符串长度防溢出)并检查返回值以避免输入错误,安全问题主要源于缓冲区溢出和类型不匹配,解决方案包括:在VS中定义_CRT_SECURE_NO_WARNINGS消除编译警告,或跨平台采用fgets+sscanf组合(如fgets(buf, siz

