iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中的指针怎么使用
  • 896
分享到

C语言中的指针怎么使用

2023-06-17 05:06:06 896人浏览 八月长安
摘要

这篇文章主要介绍“C语言中的指针怎么使用”,在日常操作中,相信很多人在C语言中的指针怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中的指针怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧

这篇文章主要介绍“C语言中的指针怎么使用”,在日常操作中,相信很多人在C语言中的指针怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中的指针怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、指针的大小

二、野指针和空指针

#include <stdio.h>int main(void){int a = 6;int* p;p = a;//把a的值赋给指针变量p,p为野指针,这样做不会出现啥问题,但是没什么意义 p = 0x456;//为指针变量p赋值,p为野指针,这样做不会出现啥问题,但是没什么意义 *p = 100;//操作野指针指向未知区域,内存会出问题,报错。return 0;}

但是,野指针和有效指针变量保存的都是数值,为了标志此指针变量没有指向任何变量(空闲可用),C语言中,可以把NULL赋值给此指针,这样就标志此指针为空指针,没有任何指针。

int* p = NULL;

说明:野指针指向一个未知的空间,程序中允许存在野指针。操作系统将0到255作为系统占用不允许访问操作,操作野指针对应的内存空间可能会报错。

#include <stdio.h>int main(void){//空指针是指内存地址编号为0的空间int* p = NULL;//操作空指针对应的空间一定会报错 *p = 6; //这样写会报错printf("%d\n", *p); return 0; }

三、万能指针void*

void*指针可以指向任意变量的内存空间:

#include <stdio.h>int main(void){//void* p = NULL;void* p;int a = 6;p = (void*)&a; //指向变量时最好转换为void* //使用指针变量指向内存时,转换为int**((int*)p) = 10; //把a的值修改为10             //在通过万能指针修改变量的值时,需要找到变量对应的指针类型。//printf("%p\n", p);printf("a = %d\n", a); return 0;}

程序执行结果:

万能指针可以接收任意类型变量的内存地址。

void* p = &a;

四、const修饰的指针变量

(1)const修饰指针类型

const int* p = &a;

这种情况:可以修改指针变量的值,不可以修改指针指向的内存空间的值。

#include <stdio.h>int main(void){int a = 3;int b = 6;const int* p = &a; //p1的初始值是a的地址p = &b; //把b的地址赋给p1,即改变p1的值(这是可行的)*p = 15; //报错,提示表达式必须是可修改的左值,因为不可以修改指针指向的内存空间的值(a的值)。printf("%p\n", p); //打印出的p1的值是b的地址,即可以修改指针变量的值。 return 0;}

(2)const修饰指针变量

int* const p = &a;

这种情况:可以修改指针指向的内存空间的值,不可以修改指针变量的值。

#include <stdio.h>int main(void){int a = 3;int b = 6; int* const p = &a;*p = 100;p = &b;//报错,提示:表达式必须是可修改的左值。即不可以修改指针变量的值 printf("%d\n", a);//打印出的a的值为100,即可以修改指针指向的内存空间的值 return 0;}

(3)const修饰指针变量和指针类型

const int* const p = &a;

我们知道在这种情况下,既不可以修改指针指向的内存空间的值,也不可以修改指针变量的值。但是我们仍能通过二级指针来修改指针指向的内存空间的值和指针变量的值。

#include <stdio.h>int main(void){int a = 2;int b = 6; const int* const p = &a;int** pp = &p; **pp = 100;  //把100赋值给a,即通过二级指针可以修改a的值,const不起作用了printf("%d\n", *p); //打印出的a的值为100 *pp = &b;  //把b的地址赋值给p,通过二级指针可以改变p的值,const不起作用了printf("%d\n", *p);//打印出的是b的值,即6 return 0;}

这也说明了const存在一定的不安全性。

五、指针的加法运算

(1)指针计算不是简单的整数相加。

(2)如果是一个int*,+1的结果是增加一个int的大小。

(3)如果是一个char*,+1的结果是增加一个char的大小。

指针的减法运算是类似的,很容易理解。

到此,关于“C语言中的指针怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C语言中的指针怎么使用

本文链接: https://www.lsjlt.com/news/287255.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言中的指针怎么使用
    这篇文章主要介绍“C语言中的指针怎么使用”,在日常操作中,相信很多人在C语言中的指针怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中的指针怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • C语言中指针怎么用
    这篇文章给大家分享的是有关C语言中指针怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1:概述1.1.1:内存内存含义:储存器:用来存储程序和数据,辅助CPU进行运算处理的重要组成部分。内存:内部存储器,...
    99+
    2023-06-25
  • C语言中怎么使用指针函数和函数指针
    本篇内容介绍了“C语言中怎么使用指针函数和函数指针”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、指针函数当一个函数声明其返回值为一个指针...
    99+
    2023-06-16
  • C语言指针怎么用
    这篇文章主要为大家展示了“C语言指针怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言指针怎么用”这篇文章吧。一、字符指针在指针的类型中我们知道有一种指针类型为字符指针 char* 。思...
    99+
    2023-06-25
  • C语言中指针的使用示例
    这篇文章给大家分享的是有关C语言中指针的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、指针的作用运用指针可以有效地表达一些复杂地数据结构,比如系统地动态分配内存、消息机制、任务调度、定时器等等。掌握指...
    99+
    2023-06-29
  • C语言中指针的使用案例
    这篇文章主要介绍C语言中指针的使用案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、利用指针倒序字符串void _reversal(char* left, char* ri...
    99+
    2023-06-29
  • c语言数组指针怎么使用
    在C语言中,数组和指针是密切相关的。数组名本身就是指向数组第一个元素的指针。因此,可以使用指针来操作数组。下面是一些常见的数组指针用...
    99+
    2023-10-18
    c语言
  • c语言指针在函数中怎么使用
    在C语言中,指针在函数中的使用有以下几种方式:1. 将指针作为函数参数传递:可以将指针作为函数的参数传递给函数,这样函数内部就可以通...
    99+
    2023-10-20
    c语言
  • C语言中如何使用指针
    这篇文章将为大家详细讲解有关C语言中如何使用指针,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。指针总结部分笔记来源于王道C语言训练营指针:变量的地址指针变量:一个变量专门用来存放另一变量的地址1.指针的本...
    99+
    2023-06-25
  • C语言中指针数组怎么用
    这篇文章主要介绍了C语言中指针数组怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。指针与数组中的sizeof与strlensizeofsizeof值关注占用空间的大小,单...
    99+
    2023-06-29
  • C语言浅析指针的使用
    目录指针等价形式转换函数指针主函数指针 指针是一个变量 (1) 作用:只能存储地址的值 (2) 大小:32位操作系统中占4字节;64位操作系统中占8字节 (3) 取地址:& ...
    99+
    2024-04-02
  • C语言指针使用的方法
    这篇文章主要介绍了C语言指针使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言指针使用的方法文章都会有所收获,下面我们一起来看看吧。指针指针是一个变量(1) 作用:只能存储地址的值(2) 大小:32...
    99+
    2023-07-02
  • c语言中指针怎么理解
    指针是 c 语言中的一种变量,存储指向其他变量或内存位置的内存地址。指针的用途包括高效的数组遍历、动态内存分配、函数参数传递和实现数据结构。需要注意的是,指针必须指向有效内存,使用正确的...
    99+
    2024-05-10
    c语言
  • C语言指针如何使用
    这篇“C语言指针如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言指针如何使用”文章吧。指针概述C语言中指针也可以...
    99+
    2023-06-30
  • C语言中指针有什么用
    这篇文章主要介绍C语言中指针有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!(壹)  敢问指针为何物 1.1  指针的概念在计算机科学中,指针(Pointer)是编程语言中的一个对...
    99+
    2023-06-29
  • C语言函数指针怎么用
    这篇文章主要介绍“C语言函数指针怎么用”,在日常操作中,相信很多人在C语言函数指针怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言函数指针怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!定义...
    99+
    2023-06-22
  • C语言中二级指针解析(指向指针的指针)
    目录二级指针(指向指针的指针)二级指针的定义与理解二级指针定义格式二级指针赋值实例二级指针(指向指针的指针) 指针可以指向一份普通类型的数据,例如 int、double、char 等...
    99+
    2024-04-02
  • 老生常谈C语言中指针的使用
    目录前提一.指针基础1.1 变量指针1.2 数据指针1.3 指针的本质1.4 指针数组1.5 指针的移动1.5 Scanf函数的解释二.指针的进阶玩法2.1 二维指针2.2 结构体指...
    99+
    2024-04-02
  • Go语言指针怎么使用
    本篇内容主要讲解“Go语言指针怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言指针怎么使用”吧!结合这个例子分析一下结果:结合以往C语言的基础,画了一张图来解释为什么会有上面这些值...
    99+
    2023-07-02
  • C语言中如何使用指针函数和函数指针
    这篇文章给大家介绍C语言中如何使用指针函数和函数指针,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、指针函数当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。格式:...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作