C语言中关于指针的理解及用法

这篇具有很好参考价值的文章主要介绍了C语言中关于指针的理解及用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于指针意思的参考:https://baike.baidu.com/item/%e6%8c%87%e9%92%88/2878304

 指针 = 指针变量 = 地址 

野指针

野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的)

以下是导致野指针的原因

1.指针未初始化

int main()
{
    int *p;
    *p=20;
    return 0;
}

 在这里面*p没有初始化,所以默认为随机值,我们也把这样的指针叫做野指针

我们之后把20赋给*p显然是行不通的,因为指针指向的是一个地址而非值,正确的赋值方法应该是这样的:

int *p,a=20;
    p=&a;

 2.指针越界

int main()
{
    int s[10]={0};
    int *p=s,a;
    for(a=0;a<=11;a++)
    {
        *p=a;
        p++;
        printf("%d\n",*p);
    }
    return 0;
}

在这串代码中,我们把数组s赋给了指针p, 而s里面只能存放10个值,我们现在用for循环,让a在s里面存了12个值,当指针指向的范围超出数组s时,这个指针就被叫做野指针

 指针的一般用法

#include<stdio.h>
int main()
{
    int i=1;    //i占4个字节
    int *p=&i;  
    return 0;
}

  这里的 * 代表着p是指针变量,int代表p指向的i是整型的

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

C语言中关于指针的理解及用法,c语言,jvm,开发语言

 我们在使用指针的时候要注意:

如果要把指针指向一个变量,我们在定义的时候就只用在变量前面加个 &(取地址符) 就行了

如果指向的是数组,我们可以直接把数组名给指针,就像*pb=s,这样输出的时候就默认是数组的第一个数,如果我们要指向数组中其他元素,就要用 & + 要取的数组下标 *pc=&s[3]。文章来源地址https://www.toymoban.com/news/detail-795649.html

到了这里,关于C语言中关于指针的理解及用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解指针——C语言

    在讲内存和地址之前,我们想有个生活中的案例: 假设有⼀栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩,如果想找到你,就得挨个房子去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:

    2024年03月14日
    浏览(70)
  • c语言指针理解

    基本理解 %p是指针的值的意思   结果看 var和p的值虽然一样,但是两个变量是指向两个内存地址。 那如果改变var变量的值  可以看到var的值变了,p的值没变 而且两个变量的内存地址也不变,也就是说这只是一个简单的改变值得过程,如果你要想变量p根据var值变化而变化,

    2023年04月12日
    浏览(35)
  • 深入理解指针(c语言)

    可以使用指针来访问数组元素。例如,可以声明一个指针变量并将其指向数组的第一个元素,然后通过递增指针的方式来访问数组的其他元素: 输出结果: 在C语言中, 数组名有时代表数组中首元素的地址,有时代表整个数组 ,视情况而定。 1、数组首元素的地址 例1: 定义

    2024年02月22日
    浏览(38)
  • 【C语言:深入理解指针二】

    我们知道,指针变量也是变量,它也有自己的地址,使用什么来存放它的地址呢?答案是:二级指针。 关于二级指针的运算 *pp先解引用,对pp中的地址进行访问,访问的就是p **pp, 先通过*pp找到p,再对p进行解引用,访问的就是a 指针数组,顾名思义,它应该是一个数组,是用

    2024年02月04日
    浏览(113)
  • C语言——深入理解指针(3)

    目录 1. 字符指针 2. 数组指针 2.1 数组指针变量 2.2 数组指针变量的初始化 3.二维数组传参(本质) 4. 函数指针 4.1 函数指针变量的创建 4.2 函数指针的使用 4.3 typedef  5. 函数指针数组 6. 转移表(函数指针数组的使用) 在指针的类型中有一种指针类型为字符指针  char*    举例

    2024年02月05日
    浏览(57)
  • 逍遥自在学C语言 | 指针的基础用法

    在C语言中,指针是一项重要的概念,它允许我们直接访问和操作内存地址。 可以说,指针是C语言一大优势。用得好,你写程序如同赵子龙百万军中取上将首级;用得不好,则各种问题层出不穷,有种双拳难敌四手的感觉。 本文将介绍指针的基础知识,包括指针的定义、初始

    2024年02月09日
    浏览(44)
  • 【C语言基础】:深入理解指针(三)

    指针系列回顾 : 【C语言基础】:深入理解指针(一) 【C语言基础】:深入理解指针(二) 一、冒泡排序 冒泡排序的核心思想就是:两两相邻的元素进行比较。 可以看到,这段代码对arr数组进行了排序,但这个代码还有一些缺陷,那就是无论数组内部的元素是否有序,他都会循

    2024年03月10日
    浏览(42)
  • C语言深入理解指针(非常详细)(四)

    字符指针在之前我们有提到过,(字符)(指针)前面的字符代表着存储的元素为字符类型,而指针则是表示这存储的方式。 写法为char * 一般使用的方式如下: 还有一种使用方式如下: 值得注意的是: 代码 const char pstr = “hello jack.”; 特别容易以为是把字符串 hello jack 放到

    2024年02月09日
    浏览(64)
  • C语言——从头开始——深入理解指针(1)

     一.内存和地址 我们知道计算上CPU(中央处理器)在处理数据的时候,是通过地址总线把需要的数据从内存中读取的,后通过数据总线把处理后的数据放回内存中。如下图所示: 计算机把内存划分为⼀个个的 内存单元 ,每个内存单元的大小取1个字节( 1个字节(Byte)=8个比特

    2024年02月21日
    浏览(46)
  • C语言深入理解指针(非常详细)(一)

    在将内存和地址时我们先举一个生活中的例子: 假设有⼀栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩, 如果想找到你,就得挨个房子去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如: 有

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包