首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言C语言数组指针

---- 友情提醒:本文可能是全csdn最详细的指针内容了,希望你能用心读下去 前言 接下来的讲解部分是指针的进阶,包含多种指针以及对应的数组,这部分章节对我们来说很重要,也是c语言中的重点模块儿,重要性不言而喻...,那么他们在内存中的空间位置肯定是不同的,而数组名代表首元素地址,两个不同数组的首元素地址肯定也是不相同啊,那么自然str1肯定str2是不相同的啦 2.首先常量字符串要在内存中开辟空间存储它本身...(c/c++会把常量字符串储存到单独的一个内存区域中) 当这两个指针指向同一个常量字符串时,实际上就是指向同一块儿地址**(指针就是地址,地址就是指针)** 2.数组指针 2.1数组指针的定义 1.数组指针嘛...ps会先[]结合,那样就不是指针了,变成数组了 2.2&数组名和数组名的对比 我们下面看一段代码,比较这两种操作的不同 #include int main() { int...我们直接大白话给他翻译成通俗易懂的语言。怎么样就是回调函数呢?就比如你现在有一个可以实现两数之和功能的函数Add,你明明可以在main函数里面直接调用这个函数,给他传上两个整数的参数,让他返回的值。

64.7K37

8.6 C语言指针数组多重指针

01什么是指针数组 1、一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。...2、一般形式 类型名 *数组名[数组长度]; 类型中应包括符合*,如int *表示是指向整数数据的指针类型。...3、例子 int *p[4]; 4、由于[]比*优先级高,因此p先[4]结合,形成p[4]形式,这显然是数组形式,表示p数组有4个元素。...然后再p前面的*结合,*表示此数组指针类型的,每个数组元素都可以指向一个整型变量。 02指向指针数据的指针 1、在了解了指针数组的基础上,需要了解指向指针数据的指针变量,简称指向指针指针。...3、命令行的一般形式 命令名 参数1 参数2……参数n C语言 | 递归求年龄 更多案例可以go公众号:C语言入门到精通

9922825
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言进阶】指针数组 —— 数组指针

    鸽芷咕:个人主页 个人专栏:《C语言进阶篇》《C语言初阶篇》 ⛺️生活的理想,就是为了理想的生活!...数组指针or指针数组是有明显不一样的下面我们就来看看 本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐! ⛺️ 欢迎铁汁们 ✔️ 点赞 收藏 ⭐留言 !...其实我们可以采用类比的方法进行比较,比如说 整形数组 指针数组 俩个命名只有前面两个字不一样。...数组指针(实例) ⛳️这里我们就采用指针数组介绍指针普通的方法接收数组来演示一下。...3, 5); return 0; } 代码结果: 全篇总结 ✅ 归纳: 好了以上就是关于 指针数组 or 数组指针 的全部区别知识点已经讲解清楚了!

    15110

    C语言指针(二)数组指针指针数组

    数组指针/指针数组 数组指针是: ❝指向数组指针,它本质上还是一个指针,类比普通指针指针数组是: ❝一个存放指针数组,本质上是数组,就如经常说的字符数组,整型数组一样 ❞ 2.1 数组的理解...2.2 数组强制类型下标 那么为什么定义数组需要强制类型呢?...arr[1] => *(&arr +1) 先让内存地址加下标,再通过指针获取到元素 ❞ 2.3 数组指针 数组指针就是指向数组第一个元素的指针,相信认真看了2.12.2的你能够很快理解 定义一个数组指针...指针数组」,顾名思义,他是个数组,就如经常说的字符数组,整型数组一样,只不过指针数组的定义方法存储对象也有亿点点不一样。...*符号的运算优先级,一但写错,就是不同的两个东西了。

    1.3K00

    C 语言数组 ( 数组指针 | 数组指针定义 | 直接定义 数组指针 )

    文章目录 总结 一、直接定义 数组指针 二、完整代码示例 总结 int (*p)[3] = NULL; 一、直接定义 数组指针 ---- 直接定义 数组指针 , 首先 , 定义一个普通数组 ,...数组指针类型 变量 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ; ArrayPointer p = NULL; p = &array2; 验证上述 定义的数组指针...; } 使用 数组指针 , 打印数组元素内容 : // 使用 数组指针 访问数组中的值 for(i = 0; i < 3; i++) { printf("..., 数组元素是指针 (作为参考) char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 首先 , 定义一个普通数组..., 将 array2 变量地址赋值给该 数组指针类型 变量 // 指针指向的数据类型为 int[3] 数组类型的变量 array2 p = &array2; // 为数组赋值

    3.4K20

    C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组指针类型 定义数组指针 )

    文章目录 总结 一、使用 数组指针类型 定义数组指针 二、完整代码示例 总结 // 首先 , 定义 数组指针类型 别名 typedef int(*ArrayPointer)[3];...// 然后 , 声明一个 数组指针类型 变量 ArrayPointer p = NULL; 一、使用 数组指针类型 定义数组指针 ---- 使用 数组指针类型 定义数组指针 , 首先 , 使用...typedef 定义一个数组指针类型 , typedef int(*ArrayPointer)[3]; 然后 , 定义一个普通数组 , 之后的 数组指针 指向该数组 , int array2...[3] = {0}; 最后 , 声明一个 数组指针类型 变量 , 将 array2 变量地址赋值给该 数组指针类型 变量 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ;..., 数组元素是指针 (作为参考) char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 使用 数组指针类型 定义数组指针

    3K10

    C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )

    * 定义数组指针 ---- 数组类型指针 就是 定义一个指针 , 指向数组首地址 ; 使用 数组类型* 定义数组指针 , 首先 , 定义数组类型 别名 , typedef int(ArrayType...)[3]; 然后 , 使用别名类型 , 声明数组变量 , ArrayType array2 = {0}; 最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针 , 指针指向的数据类型为...---- 代码示例 : #include #include #include int main() { // 指针数组 , 数组元素是指针...char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 使用 数组别名 定义数组指针 // 首先 ,...// 最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针 // 指针指向的数据类型为 int[3] 数组类型的变量 array2 ArrayType *p = NULL;

    3.4K20

    C语言指针&&二级指针&&数组指针&&指针数组详解

    里了,但是,本质是把字符串 abcdef的首字符的地址放到了pstr中 上面代码的意思是把一个常量字符串的首字符 a 的地址存放到指针变量 pstr 中 注意: C/C++会把常量字符串存储到单独的一个内存区域...但是用相同的常量字符串去初始化不同数组的时候就会开辟出不同的内存块 1.8 函数指针 顾名思义,函数指针是指向函数的指针, 存放的是函数的地址 &函数名就能够得到函数的地址 函数名也是函数的地址 int...> 比较 排序结构体数组,两个结构体的数据可能不能直接用 > 比较 也就是不同类型的数据,比较大小的方法是有差异的 1.8.1.2 代码示例 qsort使用的时候需要包含头文件 #...3.指针数组 3.1 指针数组的关系 指针数组的关系就是: 指针就是指针指针变量就是一个变量,存放地址,指针变量的大小是4或8个字节 数组就是数组,可以存放一组数,数组的大小是取决于元素类型元素个数...3.2 数组传参指针传参 在写代码的时候难免要把【数组】或者【指针】传给函数,那函数的参数该如何设计呢?

    60310

    C语言数组指针

    对于数组元素的使用,采用的是数组名加下标的方式。 比如有数组 int a[10]; 里面10个元素分别是 a[0]、a[1]、a[2]......a[9]。...引用数组元素,还有另外两种方式。 首先,我们要知道数组名a代表的含义,它表示的是首地址,数组第一个元素a[0]的地址。...*(&a) 就是打开a对应的小盒子,取出里面的数据,即*(&a)a等价。 a+i 等价于 &a[i] *(a+i) 等价于 a[i] 第二种方式就是直接使用指针来引用数组元素。...定义指针 int *p; 使用p=a;或者p=&a[0]让指针指向数组第一个元素a[0],那么通过指针p的移动,如p++等也可以遍历数组所有元素。...for(p=a,i=0;i<10;i++,p++) *p = i+1; ---- 学习有困难怎么办,快来加入微信群大家交流吧。

    1.6K10

    C语言 | 指针引用数组

    C语言数组元素的指针 指针变量既可以指向变量,也可以指向数组元素,所谓数组元素的指针就是数组元素的地址。 引用数组元素可以用下标法,也可以用指针法,即通过指向数组元素的指针找到所需的元素。...在C语言中,数组名代表数组中首元素的地址,使用指针法能使目标程序质量高,因为其占内存少,运行速度快。 C语言在引用数组元素时指针的运算 在一定条件下允许对指针进行加减的运算。...两个指针相减,如p1-p2,只有p1p2都指向同一数组中的元素时才有意义。...3、用指针变量指向数组元素。 4、可以通过改变指针变量的值指向不同的元素。 5、要注意指针变量当前的值。...C语言通过指针引用多维数组 1、多维数组元素的地址 性质与二维数组差不多,但需要注意的是,多维数组由于分配内存情况不同,所显示的地址可能是不同的。

    1.9K20

    深入解析C语言数组指针(0)

    目录 概述 一.指针 1.初级指针 2.高级指针 二.数组 1.一维数组 2.多维数组 三.指针数组 1.概念区分 2.指针数组 概述   指针C语言的重点,同时也是让初学者认为最难理解的部分。...有人说它是C语言的灵魂,只有深入理解指针才能说理解了C语言。暂且撇开这些观点不谈。这章是我在阅读《C指针》这本书的读书笔记。...第四行似乎把f声明为一个数组,它的元素类型是返回为整型的函数。但是这个声明也是非法的,因为数组元素必须具有相同的长度,但不同的函数显然具有不同的长度。   ...数组名   多维数组数组名也是个指针常量,但是一维数组不同,多维数组数组名是指向数组第一行的常量指针,而不是指向第一个元素。...对指针数组的正确区分有助于理解c语言的结构语法。

    1.3K30

    C语言数组指针指针数组的区别及使用方法

    引言: 在C语言编程中,数组指针指针数组是两个常见的概念,它们在语法用法上有一些区别。本篇博客将向你介绍C语言数组指针指针数组的区别,并通过代码示例演示它们的使用方法。...二、指针数组 指针数组是一个数组,其中的元素都是指针类型。它可以存储多个指针,每个指针指向不同的数据。...三、区别与应用场景 数组指针是指向数组指针变量,而指针数组是一个数组,其中的元素都是指针类型。 数组指针可以通过指针访问数组中的元素,而指针数组可以存储多个指针,每个指针指向不同的数据。...数组指针通常用于遍历数组传递数组作为函数参数,而指针数组通常用于存储管理多个指针。 结论: 在本篇博客中,我们学习了C语言数组指针指针数组的区别及使用方法。...问题的拓展是对问题最好的解答,如果你想了解更多C语言的知识,点赞关注,让我们一同探讨C语言的奥妙。

    16810

    C语言指针进阶:字符指针&&数组指针&&函数指针

    ✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您的点赞与关注,同时欢迎各位有空来访我的平凡舍 --...其实很简单,这里str3str4指向的是一个同一个常量字符串。C/C++会把常量字符串存储到单独的一个内存区域,当指针指向同一个字符串的时候,他们实际会指向同一块内存。...但是用相同的常量字符串去初始化不同数组的时候就会开辟出不同的内存块。所以str1str2不同,str3str4不同。...下面,我们来区别一下数组指针: int *p1[10];//指针数组 int (*p2)[10];//数组指针 int (*p)[10]; //解释:p先*结合,说明p是一个指针变量,然后指着指向的是一个大小为...所以p是一个指针,指向一个数组,叫数组指针。 //这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先*结合。 说到指针,那我们离不开一个话题:&数组名与数组名。这有什么区别呢?

    2.9K20

    详解C语言中的数组指针指针数组

    ·详解数组指针指针数组 ·数组指针 一、区分 首先我们需要了解什么是数组指针以及什么是指针数组,如下图: int *p[5]; int (*p)[5]; 数组指针的意思即为通过指针引用数组,p先*结合...2.运算 由于指针指向的是一个地址,因此数组指针也同样可以进行相关运算;例如指针的加减可以实现指针指向数组上一个或者下一个元素的功能。这边需要说明,数组指针中进行乘法除法是没有意义的。...&a[1][2] a[1][2]的地址 *(a[1]+2), *(*(a+1)+2), a[1][2] a[1][2]的值 上图都是二维数组中地址的不同表示形式。...假设我们定义一个数组,各个元素指向不同的字符串,如下图: 上图所示,我们定义一个指针数组arr,然后把各字符串的地址赋给各个元素,即arr[0]arr[1]。...*p表示p为一个指针变量,前面的*表示*p指向的是char *类型的数据。换一句话来说,如果引用*p,就是得到p所指向的值,如果拿上面的例子来说就是字符串”Hello””World”。

    3K20

    指针数组数组指针的区别详细介绍【C语言】【指针

    指针数组数组指针C语言中常用的数据结构,它们可以在处理内存动态分配、多维数组、函数指针等方面提供便利。...虽然指针数组数组指针的名字十分相似,但是它们是两个截然不同的概念,下面进行详细介绍: 一、指针数组 指针数组指针数组是一个数组,其中的每个元素都是指针类型。...指针数组常用于以下情况: 存储不同类型的数据:通过将指针数组的每个元素设置为不同类型的指针,可以存储不同类型的数据。 传递数组到函数:可以通过将指针数组作为参数传递到函数中来访问数组。...,并将每个指针设置为不同的整数变量的地址。...此外,指针数组数组指针的使用方式不同,需要根据具体情况进行选择。

    14610

    c语言数组指针相关知识点

    要点1: int arr[5]={1,2,3,4,5}; 1.arr指向数组元素首地址,可以简单理解,当做指针使用 2.[]本质就是 *()简写 3.sizeof(arr)的大小是整个数组的大小,而指针无论类型大小都是...要点2: int arr[5]={1,2,3,4,5}; int *p=arr; printf("%d\t",p[1]); 1.当相同类型的指针指向数组名时,可以把指针等价于arr来对数组进行操作 2...("%d\n", p[-1]); printf("%d\n",*(p-1)); } int main() { test(); return 0; } 要点3 指针数组数组里面的元素类型为指针 #...include void test() { int a = 10; int b = 20; int c = 30; int* arr[3] = { &a,&b,&c }; for...要点4 指针的运算 两个指针相加无意义 两个指针相乘无意义 两个指针相除无意义 两个指针想减有意义 两个指向同一数组指针进行想减时,可以获取这两个指针之间的元素个数 可以判断两个指针指向地址是否相同

    50420

    C语言指针数组数组指针的区别

    指针数组:首先它是一个数组数组的元素都是指针数组占多少个字节由数组本身决定。它是“储存指针数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。...p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个指向int 类型数据的指针,即指针数组。...至于p2 就更好理解了,在这里“()”的优先级比“[]”高,“*”号p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。...那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。我们可以借助下面的图加深理解: ?...本文实验以外的部分转载自:http://c.biancheng.net/cpp/html/476.html

    1.9K60
    领券