C语言之指针运算符、指针变量及其定义、指针的使用

2023-05-16

目录

一、指针运算符

1、&运算符

2、*运算符

二、指针变量及其定义

1、指针变量

2、定义指针变量

三、指针的使用


指针,是C语言中的一个重要概念,也是掌握C语言比较困难的部分。指针也就是内存地址,可对存储数据的变量地址进行操作,不同类型的指针变量所占用的存储单元长度是不相同的。下面主要讲述了指针运算符,指针变量及其定义,以及指针的使用。

一、指针运算符

1、&运算符

&运算符,是单目运算符,表示取地址,即获得地址的变量,它的操作数必须是变量。例如:int i; printf("%p",&i); 表示输出i的地址。

&可以取变量的地址、相邻变量的地址、数组的地址、数组单元的地址、相邻数组单元的地址,但不能对没有地址的东西取地址。

2、*运算符

*是一个单目运算符,用来访问指针的值所表示的地址上的变量,可以做右值也可以做左值(出现在赋值号左边的不是变量,而是表达式计算的结果,是一个特殊的值,称之为左值)。例如:int k=*p; *p=k+1。

指针运算符&和*互为反作用。

二、指针变量及其定义

1、指针变量

指针变量是存放内存地址的变量,不同于其他类型变量,它是专门用来存放地址的,也称为地址变量。在C语言中,指针通常指的是指针变量。

2、定义指针变量

定义指针变量的一般形式为:类型说明符 *变量名;其中类型说明符表示指针所指向变量的数据类型,* 表示这是一个指针变量,变量名表示定义的一个指针变量名,它的值是具有实际值的变量的地址。例如:int i;int *p=&i; 表示p是一个指针,它的值是变量i的地址,通常称为p指向i。

三、指针的使用

1、交换两个变量的值

void swap(int *pa,int *pb)
{
    int t=*pa;
    *pa=*pb;
    *pb=t;
}


2、函数返回多个值,某些值就只能通过指针返回,传入的参数实际上是需要保存带回的结果的变量。如:求数组中的最大值与最小值,如下:

​
#include<stdio.h>
void minmax(int a[],int len,int *min,int *max);
int main()
{
	int a[]={1,3,34,56,12,34,58,90,55};
	int min,max;
	minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
	printf("min=%d,max=%d",min,max);
	return 0;
}
	
void minmax(int a[],int len,int *min,int *max)
{
	int i;
	*min=*max=a[0];
	for(i=0;i<len;i++)
	{
		if(a[i]<*min)
		{
			*min=a[i];
		}
		if(a[i]>*max)
		{
			*max=a[i];
		}
	}
}

​


3、函数返回运算的状态,结果通过指针返回。常用的套路是让函数返回特殊的不属于有效范围内的值来表示出错(-1或0),但是当任何数值都是有效的可能结果是,就得分开返回了。

#include<stdio.h>
int divide(int a,int b,int *result);
int main()
{
	int a=5,b=2,c;
	if(divide(a,b,&c))
		printf("%d/%d=%d\n",a,b,c);
	return 0;
}

int divide(int a,int b,int *result)
{
	int ret=1;
	if(b==0)
		ret=0;
	else
		*result=a/b;
	return ret;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言之指针运算符、指针变量及其定义、指针的使用 的相关文章

随机推荐

  • 分解质因数(java解决)

    问题描述 求出区间 a b 中所有整数的质因数分解 输入格式 输入两个整数a xff0c b 输出格式 每行输出一个数的分解 xff0c 形如k 61 a1 a2 a3 a1 lt 61 a2 lt 61 a3 xff0c k也是从小到大的
  • FFmpeg工具使用总结

    一 FFmpeg是什么 xff1f 简单说 xff0c FFmpeg就是一个很好的 xff0c 免费的 xff0c 开源的视频转换工具 详细说 xff0c FFmpeg是一个开源免费跨平台的视频和音频流方案 xff0c 属于自由软件 xff
  • kali中的kalitools首页讲解

    提示 xff1a 看完别忘了关注 xff0c 点赞谢谢 文章目录 前言 一 查询器是什么 xff1f 二 使用步骤 1 打开firefox xff0c 启动页就是 xff08 kalitools xff09 查询器 2 工具查询 3 kal
  • 汉诺塔问题

    汉诺塔 题目描述 古代有一个梵塔 xff0c 塔内有3个座A xff0c B xff0c C 开始时A座上有n个盘子 xff0c 盘子大小不等 xff0c 大的在下 xff0c 小的在上 有一个老和尚想把这n个盘子从A座移到C座 xff0c
  • Ubuntu(虚拟机)的Anaconda 及使用

    安装Anaconda 使用firefox打开Ananconda网址Anaconda The World 39 s Most Popular Data Science Platform 下载后有 sh文件 xff1a Anaconda3 20
  • android 10.0 SystemUI屏蔽某个app的通知

    1 概述 在10 0的系统产品开发中 产品有需求 需要状态栏不显示某个app的通知 根据SystemUI源码通知显示流程可以得知NoticationFilter java中可以处理过滤通知 2 SystemUI屏蔽某个app的通知的核心类
  • 如何从windows host快速访问wsl文件夹

    背景 习惯在linux环境做开发活动 但也喜欢windows生态下的很多软件 如 web开发 xff0c 在windows下做视频 图片 文档编写等工作 qt开发 xff0c qt linguist在windows下原生支持简体中文 pyt
  • mysql分组查询

    概念 分组查询主要是用来统计的 xff0c 一般都是按照某一个列进行统计分组 统计类型 xff1a 求平均 xff0c 求最大 xff0c 求最小 xff0c 求和等等 分组查询需要结合分组函数一起完成 xff0c 常用的分组函数 xff1
  • Ubuntu 22.04自动挂起后无法唤醒

    可实现在键盘 鼠标断电后的唤醒 xff0c 前提是合上笔记本 但是为了以防万一 xff0c 建议在设置中将挂起有关选项全部关闭 一 安装 xff08 这个不知道干嘛的 xff09 sudo apt get install pm utils
  • C语言入门——1000以内的完数

    完数定义 如果一个数恰好等于它的真因子之和 xff0c 则称该数为 完全数 2 各个小于它的约数 xff08 真约数 列出某数的约数 xff0c 去掉该数本身 xff0c 剩下的就是它的真约数 xff09 的和等于它本身的自然数叫做完全数
  • 利用数组进行排序(选择排序)

    排序过程 1 首先通过n 1次比较 xff0c 从n个数中找出最小的 xff0c 将它与第一个数交换 第一趟选择排序 xff0c 结果最小 的数被安置在第一个元素位置上 xff08 2 xff09 再通过n 2次比较 xff0c 从剩余的n
  • C语言 : 矩阵转置 (二维数组)

    题目描述 xff1a 输入N N的矩阵 xff0c 输出它的转置矩阵 矩阵的转置操作 xff0c 即把矩阵的行元素变为列元素 列元素变为行元素的过程 输入 xff1a 第一行为整数N xff0c 接着是一个N N的矩阵 输出 xff1a 转
  • C++打卡12-百鸡百钱

    一 实验目标 公鸡1只5钱 xff0c 母鸡1只3钱 xff0c 小鸡3只1钱 xff0c 用百钱买百鸡 xff0c 问有几种购买的方案 xff1f 输入格式 输入n和m 表示用n钱买m只鸡 输出格式 输出购买的方案数 输入 100 100
  • 【C语言】十六进制转换为十进制

    目录 题目描述 补充知识 xff1a 算法分析 优化算法 写在最后 题目描述 输入一个十六进制数字串 xff0c 将其转换成为对应的整数并输出转换结果 xff0c 遇到非十六进制数字或字符串结束符 xff08 39 0 39 xff09 结
  • C语言程序入门之基本数据类型、常量与变量、运算符

    目录 一 基本数据类型 1 整型 2 浮点型 3 字符型 二 常量与变量 1 常量 2 变量 三 运算符 1 算术运算符 2 关系运算符 3 逻辑运算符 4 位运算符 5 自增自减运算符 6 赋值运算符 7 逗号运算符 8 条件运算符 9
  • C语言入门之分支与循环

    目录 一 分支语句 1 if语句 三种形式 if语句的嵌套 2 switch 二 循环语句 1 while语句 2 do while语句 3 for语言 一 分支语句 分支语句又叫选择结构语句 xff0c C语言中 xff0c 选择结构语句
  • Android 10.0 系统设置开启始终在后台运行的权限

    android 6 0系统中保活机制 所以在系统内存不够的时候 后台运行的app有可能会被系统杀掉 所以为了让app不能系统杀掉保持永久运行 就必须要增加权限 把app 添加到保活白名单里面 或者授予后台运行的权限 接下来看Settings
  • C语言之数组

    目录 一 一维数组 1 一维数组的定义 2 一维数组初始化 3 一维数组的引用 4 一维数组程序举例 二 二维数组 1 二维数组的定义 2 二维数组的初始化 3 二维数组的引用 4 二维数组的举例 三 字符数组 1 字符数组的定义 2 字符
  • C语言之函数

    目录 一 函数的定义 二 函数的参数 1 实际参数 xff08 实参 xff09 2 形式参数 xff08 形参 xff09 三 函数的调用 四 函数的返回 五 函数的声明 一 函数的定义 函数是一块代码 xff0c 接受零个或多个参数 x
  • C语言之指针运算符、指针变量及其定义、指针的使用

    目录 一 指针运算符 1 amp 运算符 2 运算符 二 指针变量及其定义 1 指针变量 2 定义指针变量 三 指针的使用 指针 xff0c 是C语言中的一个重要概念 xff0c 也是掌握C语言比较困难的部分 指针也就是内存地址 xff0c