自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 C语言 - 多级指针、void指针及const

另外,使用void指针时要小心,确保在进行类型转换时没有出错,以避免潜在的错误和内存访问问题。强制类型转换是对pa变量进行强制类型转换,并且这里的代码逻辑是先进行pa+i ,然后再进行强制类型转换,可是。上述代码就是再定义一个和数组类型一致的指针,然后让void指针强制类型转换后赋值给这个指针就完成啦!void指针是一种不确定数据类型的指针变量,它可以通过强制类型转换让该变量指向任何数据类型的变量。对于void指针,在没有强制类型转换之前,不能进行任何指针的算术运算。除了这种强制类型转换的方式以外,其实。

2023-08-19 22:17:23 491

原创 C语言 - 指针数组

所谓指针数组是指由若干个具有和的构成的。声明一个指针数组和一个普通数组:把一维数组a[0]和a[1]的首地址分别赋予指针变量数组的数组元素pa[0]和pa[1]://等价 pa[0] = &a[0][0];//等价 pa[1] = &a[1][0];此时pa[0]指向了一维数组a[0]的第一个元素a[0][0];pa[1]指向一维数组a[1]的第一个元素a[1][0];同样的,*2 2 2从这个代码可以看出a[0][1] 、*a[0]+1 和 *(pa[0]+1)都是等价的。

2023-08-19 14:39:01 143

原创 c语言题目 - 利用指针数组求二维数组的元素和

利用指针数组处理一个二维数组,要求求出二维数组所有元素的和。

2023-08-19 14:27:48 1254

原创 C语言问题 - 关于一维数组和二维数组用*a+i形式表达

把我搞懵的是*(pa + k) = *(a + i) + j;(其实真的很简单的道理还一直在纠结。。。其实这句话就是指(对等号左右边语句分别解释):每次循环 pa+k都会让pa指针都会向下移动一格,而加上星号*就是为了取指针所指的值,而pa数组存放的都是指针,所以这里加 * 就是为了取得指针里存放的地址,最后整体的 *(pa+k) 也就是 pa[k] ,那么等号左边解释完了,到底这个地址是什么地址呢?

2023-08-19 13:47:04 652

原创 c语言题目 - 不利用任何字符串函数连接两个字符串

如题。

2023-08-18 21:58:55 299 1

原创 c语言问题 - 数组指针 *ch+i 和 *(ch+i) 的区别

是根据指针和偏移量访问数组中的特定元素,结果为该元素的值。的偏移量来访问数组中的特定元素。取得该处的元素的值。这实际上是一个数学运算,即将字符。的 ASCII 值(104)与。是先计算指针所指向的数据并与。的情况下,如果设定一个下标。操作会将指针移动到数组的第。结果将是一个整数值。指针获取数组的首个元素。相加,结果为整数值;

2023-08-18 21:57:14 94

原创 c语言 - 学习字符指针的一个误区(*p和p)

在这段代码中,指针p存放的是字符串常量"Hello World"的首地址,所以*p也就是字符串常量中第一个字符值“H”,把单个字符传进puts()函数里肯定是不对的。为什么这里 p 代表的是字符串常量的首地址,但是放到 puts() 函数里了后就可以输出一整个字符串呢?

2023-08-18 16:50:38 136

原创 c语言 - 指针在数组中的移动

【代码】c语言 - 指针在数组中的移动。

2023-08-17 18:19:31 302

原创 c语言题目 - 将数组逆序存放

编写一个函数,将整型数组中n个数按反序存放。

2023-08-17 17:30:12 1124

原创 c语言 - 要注意指针会动态变化

星p1和星p2的值不是一直都是2,后面k的值变化了,由于p1和p2是一直指向k的,所以星p1和星p2也在随着k变化,也就是后来变成了都是4,于是最后结果是16。

2023-08-17 11:57:32 103

原创 c语言 - 指针的运算

一定要注意y被赋予的是类似于(*–p)的值,也就是a[0]的值,也就是5,赋值完以后才进行后面的++操作,即a[0] = 5 ++ = 6。当我输入1,2,3,4,5,6,7后。需注意的点都在注释里标注过了。指针的关系运算符如下图所示。

2023-08-17 11:48:32 366

原创 c语言 - 二维数组元素地址的偏移

那么a[2]表示?A. a[2][0]C. a+32因为二维数组在内存中是按行存储的,a[2]则表示数组第三行的首地址。A选项没有加取地址符号,则没有意义。B选项表示a[0][0]再向前偏移32个int类型的地址,不是数组第三行首地址。C选项表示整个二维数组第一个元素向下偏移32个int类型的地址,不是数组第三行首地址。D选项表示a[0][0]再向后偏移8个int类型的地址,那么就跳到了数组第三行的第一个元素,则为数组第三行首地址。

2023-08-17 09:32:58 498

原创 计算机基础 - 0x开头的十六进制数占空间内存计算

而一个字节占8位,那么8个十六进制数就占4个字节,所以0xbf98c768内存空间占4个字节。总结:先把这个十六进制数占多少位算出来,然后通过字节和位的转化计算占多少字节。这一共有8个十六进制数,一个十六进制数占4位,那么8个十六进制数就占32位。例如:0xbf98c768。

2023-08-16 21:40:40 1588

原创 c语言 - 关于如何输入字符并并指定操作停止输入

当然,这里的EOF可以换成其它的字符用来输入特定字符后结束输入。的意思是一直输入字符直到按下ctrl+D。

2023-08-16 14:32:54 2163

原创 c语言 - ASCII码表咋看

通过这些列,可以使用不同的表示方式来查看字符的值,方便在不同的场景中使用。例如,一个字符的ASCII码值可以用八进制、十进制或十六进制来表示。在ASCII码表中,Oct(八进制)、Dec(十进制)、Hex(十六进制)分别表示字符的不同表示方式,而不同的列则代表不同的数值表示形式。

2023-08-16 09:42:56 888

原创 c语言 - 转义序列

是C语言中的转义序列,表示一个字符的十六进制 ASCII 值。则将字符串 “is a test” 存储在数组。可以在C语言的字符常量或字符串中使用。表示十六进制的 ASCII 值。的 ASCII 码。

2023-08-15 20:05:06 730

原创 c语言字符串 - 长度计算问题(sizeof()和strlen())

而使用 strlen() 函数可以准确地获取字符串的长度,因为它会遍历字符数组直到遇到空字符 \0 为止。它返回的结果就是字符串的实际长度。sizeof()返回的是字符数组的大小(而不是字符串的长度),就是定义的时候多大就是多大,它不会自动遇到字符串中的’\0’就停止计算。但换成strlen(ch)了以后长度就为5了。

2023-08-15 15:30:18 127

原创 c语言 - 输出字符串包含乱码

【代码】c语言 - 输出字符串包含乱码。

2023-08-15 10:55:20 2150

原创 c语言 - 打印二维数组的行数和列数

有的时候在定义二维数组时并不会赋予它行数,那么这个时候如果需要打印出整个数组,就需要行数来作为每次循环的 i 值了,这个时候应该怎么办呢?

2023-08-15 09:19:58 1065

原创 c语言学习-快速注释掉多行的新方法

其实就是#if 0需要被忽略(注释)的代码#endif。

2023-08-14 20:19:01 750

原创 c语言题目-输出二维数组的最大值及其位置

编写程序,打印出一个三行四列数组的最大值和它在第几行、第几列。

2023-08-14 12:36:06 1146

原创 c语言题目-打印杨辉三角形的前十行

打印出杨辉三角形的前十行第1行: 1第2行: 1 1第3行: 1 2 1第4行: 1 3 3 1第5行: 1 4 6 4 1第6行: 1 5 10 10 5 1第7行: 1 6 15 20 15 6 1第8行: 1 7 21 35 35 21 7 1第9行: 1 8 28 56 70 56 28 8 1第10行: 1 9 36 84 126 126 84 36 9 1。

2023-08-13 21:31:57 2681 1

原创 嵌入式学习-c语言数组

数组是构造数据类型之一,是具有一定顺序关系的若干个变量的集合。数组中各元素的数据类型要求相同,数组可以是一维的,也可以是多维的。注意:数组名是地址常量!!!注意是常量!!不能被修改!!用代码进行测试:输出结果为:一维数组的初始化初始化方式:在定义数组时,为数组元素赋初值int a[5] = {1,2,3,4,5};说明:1、数组不初始化,其元素值为随机数2、对static数组元素不赋初值,系统会自动赋以0值3、只给部分数组元素赋初值,那么剩余的元素会自动赋0值1、C语言对数组不作越界检查

2023-08-13 20:13:55 198 1

原创 c语言输出缓冲区问题

然而,由于没有换行符或其他输出终止符,标准输出缓冲区中的内容不会立即刷新到屏幕上。这是为了提高输出效率。如果要确保输出立即显示在屏幕上,可以在。当我输入1时,确实不会输出任何内容。这是因为我的代码中使用了。当你输入1后,程序会接收到正确的输入,并在内部将其存储在。,你就可以在输入正确后立即在屏幕上看到输出。函数来读取输入,并将输入赋值给变量。通过添加换行符或调用。

2023-08-11 23:30:56 108 1

原创 c语言题目-素数

输入一个数,程序打印出该数是否为素数。

2023-08-11 21:32:51 61 1

原创 c语言题目-循环打印字母和下划线

利用for循环打印以下图案。

2023-08-11 16:30:56 381 1

原创 嵌入式学习-循环语句

必须有。也是每个循环语句都需要检查的东西。它虽然有它的坏处,但它也有优点,比如当函数有很多个出口,使用goto把这些出口集中到一处就很方便,特别是函数中有很多重复的清理工作的时候。理由是:1、无条件跳转易于理解2、可以减少嵌套3、可以避免那种忘记更新某一个出口点的问题4、算是帮助编译器做了代码优化。

2023-08-11 09:38:10 129 1

原创 c语言题目-水仙花数

水仙花数,也被称为阿姆斯特朗数或自恋数,是指一个n位数,其各个位上数字的n次幂之和恰好等于该数本身。以三位数为例,一个三位数abc 如果满足 abc = a³ + b³ + c³ ,那么它就是水仙花数。

2023-08-11 09:30:48 224 1

原创 嵌入式学习-c语言switch

(3)break是强行跳出整个switch体的,一般每个case后面都要跟一个break,但default的break可以省略,但一般要放在最后一个case语句下方。如果不写break的话,那么即便满足了一个case也会接着继续执行,而不会直接跳出switch体。2、既然case不能用范围表示,那就想办法用数值表示,比如这里的score/10就是从范围转化到数值的例子。注意switch后面真的只能是整型、字符型表达式和枚举类型,这里浮点型是不能用的。3、一定要注意加break!输入分数进行分数评级。

2023-08-10 23:29:02 112 1

原创 c语言题目-用户输入一个年份判断是否为闰年

能被4整除但不能被100整除 或 能被100整除也能被400整除。

2023-08-10 20:23:45 1017 1

原创 c语言题目-分数评级

经验:除了上面注释的问题之外,还可以学到一个知识,如果if里面的条件把握不住的话,可以灵活使用取反操作,比如if(!(grade>=0 && grade <=100))也可以作为非法的条件(之前括号里是或)。

2023-08-10 12:56:59 80 1

原创 嵌入式学习-linux系统命令

这里的i686代表系统为32位,如果输出显示的是x86_64,就说明系统是64位的。目前我的linux是32位的。

2023-08-08 21:24:00 33

原创 嵌入式学习-常量

整型常量

2023-08-03 13:40:27 56

原创 嵌入式学习-数据类型

整型分类标准:正负(signed和unsigned)和长度(short,int,long········)

2023-08-03 01:11:20 60

原创 原码,反码和补码

原码、反码和补码是机器存储一个具体数字的编码方式,格式为符号位+真值先假设有一个十进制数字5并转换为二进制为101。

2023-07-30 20:56:59 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除