- 博客(10)
- 收藏
- 关注
原创 C语言输入输出函数的汇总
**`putchar`**:向标准输出写入一个字符,相当于 `putc(char, stdout)`。- **`getchar`**:从标准输入读取一个字符,相当于 `getc(stdin)`。- **`fgetc`**:从指定的文件流中读取一个字符(总是函数)。- **`getc`**:从指定的文件流中读取一个字符(可能是宏)。- **`fputc`**:向指定的文件流写入一个字符(总是函数)。- **`putc`**:向指定的文件流写入一个字符(可能是宏)。
2024-06-13 08:03:55
291
原创 二进制(字符型、数字型)转成十进制(编程)
看这篇文章前,可以先看一下(关于取出二进制和十进制中的每一位)这里我们只讨论无符号二进制一:数字型(从左向右这里说的数字型是用户(即对计算机不太了解的人)输入101,但其实 输入的 101 是字符。scanf() 函数的声明。
2024-05-24 00:45:22
348
原创 有关指针的传值调用和传址调用
在此之前,我所遇到的都是传入的变量都是类似 int, char等(实参),然后函数参数即取出它们的地址(形参,一级指针)。先给出结论,想要通过函数修改某个变量的值,都是传入该变量的地址(实参),然后函数参数(形参)是比变量更高一级的指针。本质上是传入"hello word" 的首字符地址。上述代码中,想要通过GetMemory函数修改str(一级指针),所以应该传入 &str。今天在学习动态内存管理的时候,遇到下面的代码,发现可以对标题问题有更深刻的理解。下面给出代码(有问题的代码,这是一道面试题)
2024-05-21 10:14:17
271
原创 C语言,函数如何返回数组下标(坐标)
另外,我觉得可以将find_num函数返回指针(地址),然后用返回的地址 - 二维数组的第一个元素的地址,再与行 r 和列 c 做运算,也可得到坐标。注意,因为是地址传参,修改了参数数值,所以如果需要再次调用函数并地址传参时,需要重新对参数(r, c)进行初始化。对于杨氏矩阵来说,我们关注它的右上角(在行中最大,列中最小)和左下角(在行中最小,列中最大)。有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,方法二、利用地址传参,修改参数,从而达到返回坐标的效果。要求:时间复杂度小于o(N);
2024-05-13 17:06:47
209
原创 C语言,常量字符串不可修改
在这段代码中,你试图对一个常量字符串进行操作,这是不允许的,因为常量字符串是不可修改的。你需要将字符串存储在一个可修改的字符数组中。而在求sz时,可以用 strlen 或者 sizeof(arr) / sizeof(arr[0])今天,在做这道题目时,遇到了这个问题,特此记录一下,加深印象,以防再次犯错。
2024-05-13 15:06:54
135
原创 关于整型提升、算数转换
这里对C语言的常见类型以 int类型 为分界线,字节数小于int类型的转化成int类型,称为。1、全局变量,静态变量(static)都是放在静态区,不初始化的时候,默认被初始化为0.-1是负数即int类型,而 这里的4是unsigned int类型,这里就发生了算数转换。也就是说-1(int类型)算数转换成了4,294,967,295(unsigned类型)3、sizeof这个操作符计算返回的结果是size_t类型的,是无符号整型的。2、局部变量,是放在栈区,不初始化,默认是随机值。
2024-04-11 09:32:21
481
1
原创 康托展开式
/第2位是2,小于2的数只有一个就是1,所以有1 * 1!计算式子:2 * 2!//又例如,排列357412968是{ 1,2,3,4,5,6,7,8,9 }排列中第98884个排列。//第1位是3,比3小的数有1和2这2个,以1、2这样的数开始的排列有8!//第2位是3,小于3的数有1和2,但1已经在第一位了,所以只有一个数2,1 * 2!//第2位是5,比5小的数有1、2、3、4,由于3已经出现,因此有3个比5小的数,//第3位是2,小于2的数只有1,但1已经在第1位,所以有0个数,0 * 1!
2024-04-11 08:15:18
698
原创 关于取出十进制、二进制中每位的思路
对于十进制可以反复利用 % 和 / 这两个操作符,下面我们来讨论如何对二进制数进行取出每一位(0或1)呢?对于二进制也可以如此,只是将 %10 和 /10 变换成 %2 和 /2,即可取出二进制数中的每一位。然后对 x 进行 >>(左移) 操作,重复过程,统计出 x 二进制中 1 的个数。想法来自一道题目:////写一个函数,返回参数二进制数 1 的个数。这里是利用 & 和 >> 这两个操作符,对于任意的整数,例如11。类比十进制数通过 % 和 / 这两位操作符取出十进制数中的每一位。
2024-04-09 23:52:03
202
原创 关于for循环和while循环continue的区别
对于while循环来说,执行完continue语句,会跳过后续语句i--,使while语句陷入死循环,在下面的例子中,i始终是1。对于for循环, 执行完continue语句后,也会跳过后续语句,但与while循环不同的是,程序会继续执行for循环的表达式3(i++)今天又遇到了这个问题,由于是初学C语言,为了加深印象,写了这个博客。运行结果,屏幕会一直打印 hehe。如果有错误的地方,还望见谅。
2024-03-24 22:03:03
392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人