C语言学习日记——字符串的指针引用

本文详细介绍了字符串和指针在C++中的应用,包括快速排序算法的实现、const关键字的作用以及void*指针的特性。还提供了几种基本排序算法(选择排序、冒泡排序和插入排序)的指针实现,以及二分查找的递归版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

学习目标:

学习内容:

2.1快速排序算法

2.2const

2.3void *   

学习练习:

学习产出:


学习目标:

今天主要学习字符串和指针的内容。


学习内容:

指针的进一步使用,迭代的学习

2.1快速排序算法

 通过一轮的排序将序列分割成独立的两部分,其中前一部分序列的关键字均比后一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。

         1)先从右向左找第一个比基准数小的数,小于等于的不算。指针为p

         2)再从左向右数找第一个比基准数大的数。指针为q

         3)循环终止,交换这两个数。

         4)重复上面三步,直至p与q重叠在一起,跳出循环。

         5)调用swap函数进行begin和p交换

经过上述过程前一部分的值都小于后一部分,与二分查找类似。接下来通过递归调用的思想再对这两部分分别排序。

         6)qSort(begin, p-1);

              qSort(p + 1, end);

2.2const

修饰变量代表该变量不可被修改

修饰指针代表指针指向的对象不可被修改,指针本身可以被修改为其他元素的指针

2.3void *   

不能进行指针运算,因为其计算结果的数据类型不确定。


学习练习:

  1 #include<stdio.h>
  2 
  3 void printfArray(int *a,int len)
  4 {
  5     int i;
  6     for( i = 0; i < len;++i)
  7     {
  8         printf("%3d",*(a + i));
  9     }
 10     printf("\n");
 11 }
 12 
 13 void swap(int *a,int *b)//元素交换
 14 {
 15     int temp = *a;
 16     *a = *b;
 17     *b = temp;
 18 }
 19 
 20 void rover(int *begin ,int *end)//逆序输出
 21 {
 22     if(begin >= end)
 23     {
 24         return ;
 25     }
 26     else
 27     {
 28      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值