【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;
}
相关推荐
Tyler_TXZ7 分钟前
C++C语言之——二叉树
c语言·开发语言·数据结构·c++·二叉树
小羊先生car18 分钟前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
不会代码的小猴32 分钟前
C++新增关键字
开发语言·c++·笔记
yaoxin52112335 分钟前
497. Java 反射 - 使用反射读取注解
java·开发语言·python
2019一路前行1 小时前
Python 函数式编程
开发语言·python
冯汉栩2 小时前
Swift Control View,Label渐变颜色(源码)
开发语言·ios·swift
白狐_7983 小时前
408 数据结构|线索二叉树两题详解:先序线索化后的空链域 + 中序前驱/后继判断
c语言·数据结构·链表
从小就看凹凸曼^o^3 小时前
Python基础5 - 字典与集合:(1)字典
开发语言·python
GeekZHR3 小时前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“
java·c语言·算法·指针
Herbert_hwt3 小时前
第七章 Java深入理解枚举类型
java·开发语言·算法