笔记
jike1232
这个作者很懒,什么都没留下…
展开
-
快速排序法选择左边为基准数字时为什么要从右边开始
选择最左边元素为基准数时,是为了保证两边最终相遇时的数是小于基准数的,(最终换到最左边)。在进行是假如是左先动,一种情况是j动碰i此时i的值是肯定比基准数大。另外一种情况是i动碰j,此时j也是比基准数大的,因为上次的交换...原创 2021-11-23 16:41:05 · 627 阅读 · 0 评论 -
关于c语言多维数组的指针的理解
1.在数组中a=&a[0] (该式子对于一维数组同样成立)a[0]=&a[0][0]2.并且因为a的值仅仅在数值上等于&a[0][0] (为什么说仅仅在数值上等于,原因一会在下面说明)但是a=a=a[0]=&a[0][0]但并不意味着a=a[0][0]a的值只需要考虑它等于a[0]的地址即可可以有以下理解方式:a[0]的地址就是整个二维数组的地址,a[0][0]的地址代表了第一行的地址而a[0]比较懒,他的的地址名是直接跟a[0][0]相同,在寻找时计算机并没原创 2021-11-20 17:07:37 · 123 阅读 · 0 评论 -
c语言打印沙漏
#include<stdio.h>int main(){ int num,i,j,k,a=3,sum=1,end; char sym; scanf("%d %c", &num,&sym); if (num == 0) printf("0");//讨论0的情况 else { while (sum + 2*a <= num) { sum = sum + 2*a; a += 2; } end = num - sum; if (a原创 2021-11-17 01:00:50 · 1614 阅读 · 0 评论 -
为什么指针变量做形参可以改变实参的数据
形参不能传任何东西给实参,实参传过去的东西都是一个副本!!!下面以一个交换数据的被调函数片段为例在指针变量由实参传递给形参时传过去的实际是指针变量的值,即一个地址,在t=*p1*p1=*p2*p2=t的过程中实际是通过找到指针指向的地址进行改变数据,因为电脑中的每个地址都是不一样的,即使在函数中,一个地址的副本指向的永远和原地址指向的数据相同。而在另一种情况t=p1p1=p2p2=t中,他改变的是传过来的的副本的地址,因此,它仅仅改变了函数的形参指针所指向的数据,但是形参指针在函数调用原创 2021-11-14 00:44:58 · 2052 阅读 · 0 评论