指针地址灵活运用
根据字符串第一个字母,运用冒泡排序字符串数组。
例如
{"student","tree","new","bee"}
排序后为
{"bee","new","student","tree"}
代码
/*
============================================================================
Name : day09.c
Author : ccc
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
void sort(char ** arr,int len){
for(int i = 0;i<len - 1 ;i++){
for(int j = 0;j<len - i - 1;j++){
//指针方式
if(**(arr+j) < **(arr+j+1)){
char * temp = *(arr+j);
*(arr+j) = *(arr+j+1);
*(arr+j+1) = temp;
}
}
}
}
void sort2(char ** arr,int len){
for(int i = 0;i<len - 1 ;i++){
for(int j = 0;j<len - i - 1;j++){
//数组方式
if(arr[j][0] < arr[j+1][0]){
char * temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
void sort3(char ** arr,int len){
for(int i = 0;i<len - 1 ;i++){
for(int j = 0;j<len - i - 1;j++){
//一半指针,一半数组
if(*arr[j] > *arr[j+1]){
char * temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
char *arr[] = {"student","tree","new","bee"};
sort3(arr,4);
for(int i = 0;i<4;i++){
printf("%s\n",arr[i]);
}
return EXIT_SUCCESS;
}
总结
如图
*定义* | *说明* |
---|---|
int i | 定义整形变量 |
int *p | 定义一个指向int的指针变量 |
int a[10] | 定义一个有10个元素的数组,每个元素类型为int |
int *p[10] | 定义一个有10个元素的数组,每个元素类型为int* |
int func() | 定义一个函数,返回值为int型 |
int *func() | 定义一个函数,返回值为int *型 |
int **p | 定义一个指向int的指针的指针,二级指针 |