【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;
}
相关推荐
计算机安禾21 小时前
【c++面向对象编程】第2篇:类与对象(一):定义第一个类——成员变量与成员函数
开发语言·c++
Dxy123931021621 小时前
Python Pillow库:`img.format`与`img.mode`的区别详解
开发语言·python·pillow
亿牛云爬虫专家21 小时前
深度解析:数据采集场景下的 Java 代理技术实战
java·开发语言·数据采集·动态ip·动态代理·代理配置·连接池复用
小小仙。21 小时前
IT自学第四十二天
java·开发语言
兩尛21 小时前
c++知识点5
开发语言·c++
澈20721 小时前
C++内存管理:new/delete与内存泄漏实战
开发语言·c++·内存分区
其实防守也摸鱼21 小时前
VS code怎么使用 Conda 安装预编译包
开发语言·网络·c++·vscode·安全·web安全·conda
默子昂21 小时前
langchain 基本使用
开发语言·python·langchain
yaoxin52112321 小时前
402. Java 文件操作基础 - 读取二进制文件
java·开发语言·python
Hello.Reader21 小时前
ds4.c 深度解析为 DeepSeek V4 Flash 打造的本地推理引擎
c语言·开发语言