【C语言】指针的指针

指向指针的指针

  1. 不用管名字是怎样,抓住关键词,还是个指针。
  2. 只不过前面多了个定语是指向指针的。
  3. 指针本身是个地址,现在它指向的位置是变量的地址。
  4. 普通指针呢,是个地址,只不过指向的位置是一个变量本身。

举个栗子:

每个人都有一个物理地址,就是我们实际居住的地方。想一下网上购物,需要填写的那个送货地址,那就相当于一个指针,指向我们的地址。知道地址了,就可以查到我们是谁。知道我们在哪儿了,就可以直接获取相应的地址。

所以使用起来:地址=&人;相应的,人=*地址

那么指针的指针呢,送货地址,也是数据的一种,看作一个单位。也需要一个位置来存储,虽然可能是在我们的脑子中,也可能在手机收货地址中,总之得一个地方存储。

所以,地址2就是一个指针的指针:地址2=&地址地址=*地址2人=*地址=**地址2

cpp 复制代码
#include <stdio.h>
#include <string.h>
/*	功能:指针的指针 
	时间:2024年10月 
	地点:贤者楼129 
	作者:LChen
*/

int sort(char **p){				// 冒泡法对5个字符串排序函数
	int i,j;
	char *temp;					// 交换的中间变量 
	for(i=0;i<5;i++)
		for(j=i+1;j<5;j++)
			if(strcmp(*(p+i),*(p+j))>0){	// 头文件string.h中的字符串比较函数
				temp=*(p+i);				// 提出字符串地址,用+i+j来选择不同串 
				*(p+i)=*(p+j);				// 交换字符串地址
				*(p+j)=temp;
			}
	return 0;
}

int main() {
	
	int i;
	char **p,*pstr[5];
	char str[5][20];			// 存储字符串数据
	
	//输入数据 
	for(i=0;i<5;i++)			//将第i个字符串的首地址赋予指针数组 pstr的第i个元素
		pstr[i]=str[i];   		// 行指针 
	printf("input 5 strings:\n");
	for(i=0;i<5;i++)
		scanf("%s",pstr[i]);
	p=pstr;
	
	// 数据处理:排序 
	sort(p);
	
	// 输出数据 
	printf("strings sorted:\n");
	for (i=0;i<5;i++)
		printf("%s\n",pstr[i]);
	return 0;
}
相关推荐
曼巴UE54 分钟前
UE5.3 C++ TArray系列(一)
开发语言·c++·ue5
熬夜苦读学习15 分钟前
Linux文件系统
linux·运维·服务器·开发语言·后端
菜鸟一枚在这23 分钟前
深度解析建造者模式:复杂对象构建的优雅之道
java·开发语言·算法
阿巴~阿巴~42 分钟前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先
waicsdn_haha2 小时前
Visual Studio Code 2025 安装与高效配置教程
c语言·ide·windows·vscode·微软·编辑器·win7
奔跑吧邓邓子2 小时前
【Python爬虫(34)】Python多进程编程:开启高效并行世界的钥匙
开发语言·爬虫·python·多进程
Heris992 小时前
2.22 c++练习【operator运算符重载、封装消息队列、封装信号灯集】
开发语言·c++
----云烟----2 小时前
C/C++ 中 volatile 关键字详解
c语言·开发语言·c++
yuanpan3 小时前
23种设计模式之《组合模式(Composite)》在c#中的应用及理解
开发语言·设计模式·c#·组合模式
BanLul3 小时前
进程与线程 (三)——线程间通信
c语言·开发语言·算法