C语言知识点
文章平均质量分 59
记录
ghujlhdrx
记录点滴
展开
-
C语言基础知识点(十一)printf的转换说明
f 单精度浮点数(默认float)、十进制记数法(%.nf 这里n表示精确到小数位后n位.十进制计数)%d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。%d就是输出的时候的占位符,占a的位 表示以十进制整数形式输出a。%s 对应字符串char*(%s == %hs == %hS 输出 窄字符)%d是用来指定输入和输出时的数据类型和格式,表示“以十进制整数的形式输出”。%S 对应宽字符串WCAHR*(%ws == %S 输出宽字符串)原创 2024-03-18 10:31:07 · 637 阅读 · 0 评论 -
C语言基础知识点(十二)a+=a
a+=12-144;原创 2024-03-18 10:48:54 · 397 阅读 · 0 评论 -
C语言基础知识点(十三)编译器中变量内存储存
我们可以看到,在该编译器中栈的开口往下,地址由高往低生长,先在高的地址存放放进来的变量,再到低的地址存放后放进来的变量。就好像指针变量ptr2的地址比ptr1低。但是数组由于本身的特性,下标大的反而会比下标小的地址更高,不受栈开口方向影响。今天在看C语言基础知识点时遇到一个很有趣的问题,我们先看一眼代码。原创 2024-03-18 15:49:07 · 372 阅读 · 0 评论 -
c语言基础知识点(一)C语言中的指针运算和数组名的特性
是一个具有 5 个元素的整型数组,而每个整型元素占据 4 个字节的空间(取决于系统平台),所以。的类型是已知的,编译器可以根据类型确定数组所占的字节数。的地址增加了一个数组大小的偏移量,并将其强制转换为。的末地址加上整个数组大小之后的位置。,即数组首元素的地址。类型后,就指向了这个地址。,而不是直接增加整个数组。得到的地址值向后增加了。的偏移量计算,可以得到。原创 2023-09-14 15:12:19 · 213 阅读 · 0 评论 -
C语言编程题(二)运算符与位运算符优先级
低于int类型(即规定的寄存器大小)的基础类型需要在运算过程中转化为int类型(寄存器的位数)的大小进行计算。(为了保证运算的一致性和精确性,编译器会将较小的整数类型自动提升为。取反然后加一再补负号还原这个数字。负数则需要对其取绝对值再加一。按照常规来说,将a取反为。但是这里特别要注意一点,类型,并在进行运算时使用。原创 2023-09-14 16:08:38 · 109 阅读 · 0 评论 -
C语言编程题(三)整型和浮点型混合运算
对于小数部分,我们需要进行乘2取整的操作。具体步骤如下: 0.25 * 2 = 0.5 整数部分为0 0.5 * 2 = 1.0 整数部分为1。首先,将165.25转换为二进制表示形式。整数部分的转换是简单的,可以直接转换为二进制数字:165转换为二进制是10100101。最高位是符号位(S):0表示正数,1表示负数。接下来的8位是指数位(E)。剩下的23位是尾数位(M)。将整数部分和小数部分的二进制放在一起,得到:10100101.01。将乘法过程得到的整数按顺序排列,得到0.01。原创 2023-09-14 16:36:25 · 1173 阅读 · 0 评论 -
C语言编程题(四)有符号数与无符号数相加
要计算-20的补码,需要先找到它的二进制表示形式,然后将其转换为补码。首先,将20转换为二进制,得到00010100。然后,取这个二进制数的反码,即每一位取反。运算(a+b>6)时,先a+b,根据运算规则,b将被看成是unsigned int 型,即11111111 11111111 11111111 11101100所带表的unsigned int 型数据,化为。-20在内存中以补码的形式存储,大小为4个字节,其二进制形式为:11111111 11111111 11111111 11101100a 为。原创 2023-09-14 16:41:33 · 469 阅读 · 0 评论 -
C语言编程题(五)sizeof结构体与字节对齐
这是因为在C/C++中,字符串字面量(以双引号括起来的字符序列)包括其实际字符内容和一个null终止符('\0')作为字符串的结束标志。因此,字符串 "\0" 实际上包含两个字符:一个是null终止符,另一个是实际的字符。sizeof是C语言的关键字,它以字节的形式给出了其操作数的存储大小,操作数可以是一个表达式或括在括号内的类型名,操作数的存储大小由操作数的类型决定。strlen用来计算字符串的长度,它从内存的某个位置开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值。原创 2023-09-15 20:47:30 · 238 阅读 · 0 评论 -
C语言基础知识点(六)二维数组指针和地址
在C语言中,数组名是一个指向数组第一个元素的指针,即其本身代表了该数组第一个元素的地址。是二维数组的第一行,是指向第一个元素的指针。是指向第一行的指针,解引用两次后得到第一行的第一个元素;是指向第二行的指针,解引用两次后得到第二行的第一个元素。是指向第一行的指针,解引用后得到第一行的第一个元素;是指向第二行的指针,解引用后得到第二行的第一个元素。是第一行的第一个元素,解引用后得到该元素的值;是第一行的第二个元素,解引用后得到该元素的值。是第二行的第一个元素,解引用后得到该元素的值;原创 2023-09-15 22:13:43 · 452 阅读 · 0 评论 -
C语言基础知识点(七)枚举类型定义
在定义枚举类型时,元素(枚举常量)的序号默认是从 0 开始排列的。如果指定了部分元素的序号,那么未指定值的元素的序号将依着前面的最后一个指定值向后递增,步长为 1。小写a的ascii值是97 按照递增顺序,那eparam6就是98 , eparam3是10 eparam4=11。下列程序数据结果是多少(大 A 的 ascii 码是 65 )?原创 2023-09-21 21:15:20 · 55 阅读 · 0 评论 -
C语言基础知识点(八)联合体和大小端模式
以下程序的输出是()原创 2023-09-21 22:06:48 · 563 阅读 · 0 评论 -
C语言基础知识点(九)数据类型溢出
char占一个字节 所以数据范围为-128~127 超过127后数据会从-128开始累加 a += 27本来等于128但最大为127所以此时a=-128 然后sum += a等价于sum-a=200 - 128等于72。10000000 -------->11111111 11111111 11111111 10000000(-128补码)参考答案:D 72. char类型的范围是-128---+127,当a+=27 ,之后a的值超出可表示范围会变为-128.原创 2023-09-21 22:24:05 · 212 阅读 · 0 评论 -
C语言中volatile/register/const/static/extern/auto关键字的作用
突然想总结一下这些关键字的作用,灵活使用这些对程序的可靠性和速率都有提高。原创 2023-10-06 16:14:28 · 429 阅读 · 0 评论