首页 > 其他分享 >C数组和指针

C数组和指针

时间:2024-08-22 09:04:15浏览次数:6  
标签:arr parr0 parr1 pparr1 pparr0 数组 printf 指针

// Online C compiler to run C program online
#include <stdio.h>

int main() {

    char arr[2] = {1, 2};
    
    char *parr0 = NULL;
    char *parr1 = NULL;
    
    char **pparr0 = NULL;
    char **pparr1 = NULL;
    
    printf("%p %p %p\n", arr, &arr[0], &arr);
    printf("%p %p %p\n", arr + 1, (&arr[0]) + 1, (&arr) + 1);
    
    parr0 = arr;
    parr1 = &arr[0];
    
    printf("%p %p %p %p\n", parr0, arr, parr1, &arr[0]);
    
    pparr0 = &parr0;
    pparr1 = &parr1;
    
    printf("%p %p %p %p\n", *pparr0, parr0, *pparr1, parr1);
    
    printf("%d %d\n", *pparr0[0], *pparr1[0]);
    printf("%d %d %d %d\n", **pparr0, **pparr1, *(*pparr0 + 1), *(*pparr1 + 1));
    printf("%p %p\n", pparr0[0], pparr1[0]);
    
    return 0;
}

标签:arr,parr0,parr1,pparr1,pparr0,数组,printf,指针
From: https://www.cnblogs.com/archerqvq/p/18372987

相关文章

  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
    概述为什么大家总觉得KMP难?难的根本就不是这个算法本身。在互联网上你可以见到八十种KMP算法的next数组定义和模式串回滚策略,把一切都懂得特别混乱。很多时候初学者的难点根本不在于这个算法本身,而是它令人痛苦的百花齐放的定义。有的next数组从0下标开始,有的从1开始;有的表......
  • C++智能指针配合STL模板类
    代码 #include<unordered_map>#include<set>#include<memory>classResID{public:usingSP=std::shared_ptr<ResID>;ResID()=default;ResID(conststd::string&id,conststd::string&type):m_id(id......
  • 信息学奥赛初赛天天练-71-NOIP2016普及组-基础题2-进制转换、二进制转八进制、八进制
    NOIP2016普及组基础题24以下不是CPU生产厂商的是()AIntelBAMDCMicrosoftDIBM8与二进制小数0.1相等的八进制数是()A0.8B0.4C0.2D0.19以下是32位机器和64位机器的区别是()A显示器不同B硬盘大小不同C寻址......
  • 面试+算法之动态规划(Java):斐波那契、背包问题、走棋盘、分苹果、连续子数组最大和、
    概述Dynamicprogramming,简称DP,动态规划,基础算法之一,维基百科的解释:是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时......
  • 2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算
    2024-08-21:用go语言,给定一个从0开始索引的整数数组nums和一个整数k,请设计一个算法来使得数组中的所有元素都大于或等于k,返回所需的最少操作次数。每次操作可以执行以下步骤:1.选择数组中最小的两个整数x和y。2.从数组中删除x和y。3.计算min(x,y)*2+max(x,y)......
  • 【C语言入门】如何使用动态内存分配来模拟“大小未知”的数组
    如何使用动态内存分配来模拟“大小未知”的数组引子举例应用结语引子在C语言中,定义一个“大小未知”的数组直接是不可行的,因为数组在声明时必须有确定的大小,要么是在编译时确定的常量表达式,要么是在C99或更高标准下,允许运行时确定大小的变长数组(VLA)。变长数组(Varia......
  • C++ 函数指针
    C++中函数指针表示指向函数的指针,其作用相当于函数的别名,通过函数指针可以直接调用对应的函数。函数指针有两种表示方式,一种通过typedef进行声明,一种通过新的方式using来进行声明。函数指针所指向的函数,其对应的形参个数、类型与返回值,都应该相同。//FuncPtr1为函数指针,表示一......
  • 如何去除有序数组中的重复元素
    题目要求:输入一个有序的数组,你需要原地删除重复的元素,使得每个元素只能出现一次,返回去重后新数组的长度题目分析:原地删除,即不可以创建新的辅助数组,那么需要在原数组上修改解决。这种一般采用双指针技巧即:如果是普通数组,使用两个指针slow和fast,fast负责网后遍历,如果发现数组元素......
  • C++类模板案例-数组类封装
    #include<iostream>usingnamespacestd;template<classT>classMyArray{public: MyArray(intcapacity) { this->m_Capacity=capacity; this->m_Size=0; this->pAddress=newT[this->m_Capacity]; } ~MyArray() { if(th......
  • 参诸文籍, 带你深入理解C/C++复杂指针声明
    参诸文籍,带你深入理解C/C++复杂指针声明本文参考的相关文章已置于页脚文章目录参诸文籍,带你深入理解C/C++复杂指针声明一.引言二.C/C++运算符优先级三.简单表达式一.`int*p;`二.`int**pp;`四.==解读C声明的“右左”规则`[重要]`==(一)、符号含义(二)......