C语言学习记录
C语言学习记录
小伟4587
这个作者很懒,什么都没留下…
展开
-
C语言-库函数strlen实现
建立一个新的指针变量存放首元素字符的地址,开始循环后,当不是'\0'时arr_0跳过一个访问对象,最终遇到'\0'时,循环停止,此时,arr_0访问是'\0'前一个元素的地址,用arr_0存放的指针减去初始arr存放的指针,得到就是中间元素的个数。如果是放的是'a' 'b' '\0',my_strlen3('a','b','\0')=1+my_strlen3('a','\0')=1+1+my_strlen3('\0')=2 ......以此类推。原创 2023-11-10 22:10:31 · 45 阅读 · 1 评论 -
C语言-循序渐进的实现简单计算器
2,利用函数指针传参,可以将不同的函数传入cal函数,实现不同函数的调用,并计算,实现代码的复用。但如果要继续添加其他功能,需要添加很多case项,很导致代码变得很长。1,最简单直观的实现方法 ,通过switch语句进行判断,调用不同的函数,进行打印,会发现有很多重复代码。3,建立函数指针数组,通过数组下标访问对应的函数,代码变得简洁,还可以方便的添加其他功能。知识点:函数,switch语句。原创 2023-11-05 23:06:57 · 91 阅读 · 0 评论 -
C语言-数组指针数组的学习
如果对parr加1,会以int (*)[5]调到下一个元素,由上知,对其**得到arr2首元素地址,对arr2加4再解引用,可得到arr2中下标为4的元素,用如下代码打印出50。中,如果直接对parr解引用,会得到首元素&arr1的地址,同时&arr1代表的是arr1的地址,所以**parr后才会得到arr1,即arr1首元素的地址。建立三个一维数组,取地址后放入一个数组,此为数组指针数组,尝试对所有元素进行打印。分析过程:int (*parr[10])[5]代表其类型时int (*)[5],是。原创 2023-11-05 17:07:22 · 40 阅读 · 1 评论 -
C语言-调整数组使奇数全部位于偶数前面
最先想到的方法就是建立一个新的数组,然后对原数组的每个元素进行判断,如果是奇数就放在新数组的前面,偶数就放在后面。在没有要求顺序的情况下,就想到,奇数从0位(left)开始放,偶数从最高位置(right)开始放,放完之后,left++,right--,就可以完成该效果了。后续思考:该方法需要重新建立一个数组,故需要设置好长度,否则可能会出错,而且不能写成函数的形式。于是就想到,遍历每个元素,如果是该位是奇数,那位置不变,如果是偶数,那就从后往前遍历,如果发现有奇数,就与其交换并结束遍历。原创 2023-11-04 16:57:30 · 131 阅读 · 0 评论