【C语言】 指针使用之前检查有效性|指针+- 整数|指针 - 指针

举报
謓泽 发表于 2023/09/29 14:00:43 2023/09/29
【摘要】 【C语言】 指针使用之前检查有效性|指针+- 整数|指针 - 指针

💣 指针使用之前检查有效性

当你指针变量不可以用的时候就把它设置成NULL,当你指针变量可以用的时候就不是NULL 

当我们对这个指针进行初始化的话,那么它就是有效的,如果没有初始化那么就是无效的

	if (pa != NULL)
	{
		//进行使用
	}
	if (pa == NULL)
	{
		//不进行使用
	}

🗡 指针运算 

💣 指针+- 整数

示例,代码如下所示👇

#define Macro 5
	int values[Macro];
	int* p;
	for (p = &values[0]; p = &values[Macro];)
	{
		*p++ = 0;
	}
    return 0;

这里的代码会使得 values 的数组下标结果全部初始化为 0。

在这里我们就运用到了 指针 + 整数 : *p++ = 0;

注意: p = &values[Macro];这个实际上就是指针的关系运算。指针比较了大小。随着数组的下标的变化,地址是由低到高进行变化的。


💣 指针 - 指针

如下代码所示↓

#include<stdio.h>
int main(void)
{
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	printf("%d\n", *(&arr[9]) - *(&arr[0]));
	return 0;
}

运行编译结果:9

从上面的编译结果我们可以知道→指针 - 指针 得到的两个指针之间的元素个数

注意:指针和指针相减的前提是→两个指针类型必须指向同一块空间

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。