C语言,二级指针,p,*p,**p的使用

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

         二级指针的使用是一个非常不易的问题,主要还是用的少了,如果经常使用到他,就会很明显的感受到其具体使用方法。

char *a[10]={"as","bc","ssasd","asd"};

char **p=a;

 则 p,*p,**p的含义:

        在给定代码中,定义了一个字符指针数组 a,并初始化了其中的元素。然后定义了一个字符指针指针 p,并将其指向了数组 a

  • p:这是一个字符指针指针,指向字符指针数组 a 的第一个元素的地址,即 a[0]。因此,p 指向字符串 "as"。
  • *p:通过对 p 进行解引用,你获得了 p 指向的地址处的值,即 a[0],也就是字符串 "as"。
  • **p:这是一个字符指针的指针,通过对 *p 进行解引用,你获得了 *p 指向的地址处的值,即 a[0],然后再对其进行解引用,你获得了字符串 "as" 的第一个字符 'a'。

        所以,p 指向字符串 "as",*p 也指向字符串 "as",而 **p 是字符串 "as" 的第一个字符 'a'。

        但是 p的偏移量为指针数组内的一个指针量(8位)(64位编译器), *p的偏移量就只有一个字节(对比的是如下的操作,具体*p偏移量看数据类型)。文章来源地址https://www.toymoban.com/news/detail-648564.html

/*===============================================
*   文件名称:Func_Wordstr.c
*   创 建 者:WM
*   创建日期:2023年08月14日
*   描    述:一堆字符串中求纯字母字符串
================================================*/
#include <stdio.h>
int Func_word(char **);

int main(int argc, char *argv[])
{ 
   char  *arr [10]={"ashdjas","as./.d","sasd[]","wor ld","[]hello","as"};
   printf("%d\n",Func_word(arr));
   return 0;
} 
int Func_word(char **str)
{
   int i=0;
    while (*str!=NULL)
    {
      while(**str)
      {
        if ((('a'<=**str&&**str<='z')||('A'<=**str&&**str<='Z')))
        {
               if(*(*str+1)=='\0')
               {
                  i++;
                  break;
               }
        }
        else
        {
              break;
        }
        (*str)++; //指向内层的数据的指针开始偏移一个字节的单位。       
      } 
      str++;//这个是指向数组内指针的指针开始偏移,偏移一个地址位。
    }
   return i; 
}

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

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

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

相关文章

  • 【C语言初阶】带你轻松掌握指针基础知识完结篇——野指针,指针运算,指针和数组,二级指针

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,这里是君兮_,今天继续给大家更新0基础入门C语言的内容,我们这次主要更新的依然是初阶指针的基础知识 废话不多说咱们直接开始吧!! 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有

    2024年02月16日
    浏览(47)
  • 当函数参数为一级指针,二级指针

    在讲述内容之前,先讲四点重要知识 1. 当传入参数时,函数形参会立即申请形参的内存空间,函数执行完毕后,形参的内存空间立即释放掉 。 1. 指针是存放其他变量地址的变量 。指针有自己的内存空间,内存空间存放的是其他变量的地址。 2. 指针具体指向谁,要看指针内

    2024年02月06日
    浏览(44)
  • C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组

    目录 一.指针运算🌴 1.曾经用过的案例:写一个模拟实现字符串的函数 2.指针+-整数🌾  3.指针-指针🌏 方法1:大地址-小地址或者小地址-大地址⛅ 方法2:模拟实现指针相减🌱 4.指针的关系运算 二.指针和数组 ☑️☑️​​​​​​​☑️​​​​​​​重点:  💾画图笔记

    2023年04月12日
    浏览(33)
  • 【NCRE 二级Java语言程序设计04】二级Java考试应用软件使用

    📜本专栏主要是分享自己备考全国计算机二级所学、所搜集的资料。虽然有Java相关基础,但是桌面编程、Applet编程根本没学过,因为咱不是搞这个的呀,学了也找不到这方面工作呀。但是对于考二级的必须学了。即使二级Java简单,我们也要认真备考,一次性过多好。 🚀 文

    2024年01月19日
    浏览(63)
  • 【数据结构】双向链表 超详细 (含:何时用一级指针或二级指针;指针域的指针是否要释放)

    目录 一、简介 二. 双链表的实现 1.准备工作及其注意事项 1.1 先创建三个文件 1.2 注意事项:帮助高效记忆 1.3   关于什么时候 用 一级指针接收,什么时候用 二级指针接收? 1.4 释放节点时,要将节点地址 置为NULL,难道 节点内部的 指针域的指针 就不用置为 NULL吗?  2.双链

    2024年02月20日
    浏览(88)
  • C语言指针的使用

    在 C 语言中,指针是一种用于存储内存地址的数据类型。指针可以存储任何数据类型的内存地址,包括基本数据类型、数组、结构体、函数等。通过指针,可以实现对内存中某个位置的直接访问和修改,这是 C 语言中很多高级特性的实现基础。 在定义指针变量时,需要指定指

    2024年02月02日
    浏览(36)
  • C语言:函数指针的使用

    在C语言中,函数指针是指向函数的指针变量。它可以存储函数的地址,使得可以通过该指针来调用函数。以下是函数指针的基本概念和用法: 一、基本概念: 声明函数指针: 这里 returnType 是函数返回类型, parameterTypes 是函数参数类型。例如: 初始化函数指针: 或者更简洁

    2024年01月21日
    浏览(37)
  • c语言函数指针和指针函数的区别,以及回调函数的使用。

    函数指针 是什么,函数指针本质也是指针,不过是指向函数的指针,存储的是函数的地址。 指针函数 是什么,指针函数其实就是返回值是指针的函数,本质是函数。 函数指针是如何定义的呢,如下 这里 * pfun 需要 加括号 ,否则定义为了指针函数。 指针函数的定义如下: 下面

    2024年02月11日
    浏览(46)
  • C语言:使用指针打印数组内容

    写一个 函数 打印arr数组的内容 ,不使用数组下标, 使用指针 。 arr 是 一维数组 。                       =========================================================================                         (一). 定义 一维数组arr : float arr[] = { 3.14f, 99.9f, 66.5f, 0.0f };          定义 指

    2024年02月10日
    浏览(38)
  • c语言200例 051 使用指针实现逆序存放数组元素

    关键技术: 1.自定义创建了个函数 inverte()用来实现对数组元素的逆序存放 2.自定义函数的形参为个指向数组的指针变量x,初始值指向数组 a 的首元素的地址,x+n是 a[n]元素的地址 3.声明指针变量i、j和 p,i初始值为x,即指向数组首元素地址,j的初始值为 x+n-1,即指向数组最

    2024年02月03日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包