【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;
}
相关推荐
史不了38 分钟前
静态交叉编译rust程序
开发语言·后端·rust
ad钙奶长高高42 分钟前
【C语言】扫雷游戏详解
c语言
读研的武1 小时前
DashGo零基础入门 纯Python的管理系统搭建
开发语言·python
Andy1 小时前
Python基础语法4
开发语言·python
但要及时清醒1 小时前
ArrayList和LinkedList
java·开发语言
孚亭2 小时前
Swift添加字体到项目中
开发语言·ios·swift
hweiyu002 小时前
Go、DevOps运维开发实战(视频教程)
开发语言·golang·运维开发
mm-q29152227292 小时前
Python+Requests零基础系统掌握接口自动化测试
开发语言·python
星星火柴9362 小时前
笔记 | C++面向对象高级开发
开发语言·c++·笔记·学习