`

C数组与指针

    博客分类:
  • C
c 
阅读更多
指针说白了就是地址.
指针变量就是用来存放指针(地址)的变量。

两个有关的运算符:

&  取地址运算符     &a 就代表变量a的地址

*  指针运算符     *a 就代表变量a的值

C语言规定,数组存储空间的首地址存放在数组名中,即数组名指向下标为0的数组元素。
由此可知数组名不仅是一个标识名字,它本身又是个地址量。由于数组的存储位置是系统分配的
,用户不能任意改变位置,所以,表示数组存储起始位置的数组名是个地址常量。另外,数组中的
每个元素都有地址,其表示形式为:&数组名[下标],其值也是地址常量。
如:数组a的首地址为a或&a[0],数组元素a[3]的地址为&a[3].
1.指向一维数组元素的指针变量
int *p;
定义p为指向整型变量的指针变量,若有下面赋值语句:
p = &a[3];
则把元素a[3]的地址赋给指针变量p。
可以在定义指针变量的同时,把数组元素的地址初始化给指针变量.例如:
int a[10],*p=a;
它等价于:
int a[10],*p;
p=a;
其作用是把数组a的起始地址,即a[0]的地址赋给指针变量p。
需要注意到是:指针变量的类型必须与它指向的数组元素的类型一致.


定  义 含   义
Int I; 定义一个整型变量I
Int *p; P为指向整型数据的指针变量
Int a[n]; 定义整型数组a,它有n个元素
Int *p[n]; 定义指针数组p,它有n个指向整型的指针元素
Int (*p)[n]; P为指向含有n个元素的一维数组的指针变量
Int f(); F为返回整型值的函数
Int *p(); P为返回值为指针的函数,该指针指向整型数据
Int (*p)(); P为指向函数的指针,该函数返回一个整型值
Int **p; 定义一个指向指针的指针变量
---------------------------------------------------------------------------------
const char*和char* const
指向常量的指针
指针常量

1.指向常量的指针
对一个利用const char*类型定义的常量指针来说,不能修改其指向的内存中的内容,但可以
修改其所指向的内存地址。

2.指针常量
指针值不可修改
指向的内容可以修改

const char*类型的指针(指向常量的指针)其所指向的内容是常量,是不可以修改的,但其指针值是可以修改的。但对于char* const类型的指针(常量指针)来说,它的地址是一个常量,也就是说,它的指针值是常量,不可以修改,但其指向的内容是可以修改的。
分享到:
评论

相关推荐

    C语言数组与指针代码精选

    在C语言中,数组和指针是编程的基础概念,它们紧密相连,经常一起使用。本章节将深入探讨这两个核心主题,结合"常东超、吕宝志...记住,实践是检验真理的唯一标准,多写代码,多思考,才能真正掌握C语言的数组与指针。

    c语言数组与指针

    总的来说,理解和熟练运用数组与指针对于掌握C语言至关重要。它们在算法实现、内存管理、函数调用等多个方面都有广泛应用。通过深入学习和实践,你将能够更加自如地在C语言环境中解决问题。而提供的“5数组与指针”...

    数组与指针的艺术.doc

    《数组与指针的艺术》是一篇深度探讨C/C++中数组和指针特性的文章,旨在帮助读者理解和掌握这两种核心概念。文章指出,数组和指针是C/C++语言的灵魂,它们提供了对底层操作的强大支持,是语言效率的保证。然而,由于...

    数组与指针区别(很全面)

    ### 数组与指针的区别详解 ...正确理解和区分数组与指针的概念对于编写高效、可靠的C/C++程序至关重要。通过本文的探讨,希望能帮助读者更好地掌握这两种数据结构的特点,并在实际编程中做出合适的选择。

    c语言中 数组名和指针的区别

    在C语言中,数组名和指针之间存在微妙且重要的区别,这往往让初学者感到困惑。虽然在某些上下文中,它们看似可以互换使用,但深入理解它们的本质差异对于编写高效、安全的代码至关重要。 ### 一、数组名与指针的...

    浅析C语言数组与指针.pdf

    本文档通过具体的实例和图表,详细分析了数组与指针的定义、数组元素的引用、指针与自增自减运算符的结合使用,以及二维数组中元素的地址表示方式等内容。文档力求通过具体的编程示例帮助初学者快速理解和掌握C语言...

    C语言数组与指针详解

    总之,C语言中的数组和指针是紧密相关的概念,掌握它们的关系和使用方法是成为熟练C程序员的关键步骤。通过实践、理论学习和逐步深入,即使是初学者也能克服“晕指针”的困境,从而更好地理解和运用这些强大的工具。

    C语言数组和指针

    **多维数组指针:** ```c int (*p)[3]; // p是指向含有3个整型元素数组的指针 int (*p)[3] = &a; // 将数组a的地址赋给p ``` **函数指针:** 函数指针是一种特殊的指针类型,它可以存储函数的地址。 ```c int add...

    C语言经典指针与数组ppt

    【C语言指针与数组详解】 C语言中的指针和数组是编程中极其重要的概念,它们在内存管理和数据处理方面发挥着关键作用。本篇将深入讲解数组和指针的基本用法及其相互关系。 1. **数组** - **定义**:数组是一种...

    C语言数组、指针与编程技巧

    ### C语言数组、指针与编程技巧 #### 一、数组的基本概念与使用方法 **数组**是一种数据结构,用于存储相同类型的多个元素。在C语言中,数组可以通过指定索引来访问其中的元素。 ##### 1.1 数组声明 数组的声明...

    C\C++ 数组与指针彻底总结

    本篇文章详细讲解了指针、指针数组、数组指针、指针的指针等的应用,旨在帮助读者深入理解 C/C++ 语言中的数组和指针概念。 一、指针数组 指针数组是一个数组里存放的都是同一个类型的指针。例如,int *a[10]; 它...

    c语言指针数组与指针的指针

    c语言指针数组与指针的指针,认清指针与数组的关系.

    数组与指针的艺术 pdf

    #### 四、指针与数组的混淆 文档中提到的一些常见的错误观点包括: - “一维数组是一级指针”、“二维数组是二级指针”等说法。这些说法忽略了数组名和指针之间的本质区别。 - “数组名是一个常量指针”、“数组名...

    C语言数组指针(指向数组的指针)_C语言中文网1

    总的来说,理解和熟练运用数组指针是掌握C语言的关键技能之一。它不仅能够帮助我们更有效地操作数组,还能在编写高效的代码时发挥重要作用。在深入学习C语言指针时,还会涉及到二级指针、指针数组、字符串指针、函数...

    C语言PPT数组与指针

    #### 指针与二维数组 在C语言中,数组名本质上是一个指向数组第一个元素的指针。因此,我们可以利用指针来操作和访问二维数组。 - **行指针**:`a`本身可以被视为一个指向含有3个整型元素的数组的指针。 - 示例...

    数组与指针应用详解,区别

    数组名与指针的关系是 C/C++ 编程中的一大难点,许多程序员容易将数组名与指针混淆,认为数组名就是指针。然而,实际上数组名与指针有着本质的区别。 第一点,数组名不是指针。从 sizeof vận算符的返回值可以看出...

    数组和指针练习题目(精选)

    在C语言中,数组的名称实际上是一个指向数组首元素的指针。例如,`int a[5];` 就定义了一个整型数组 `a`,其名称 `a` 就是一个指向数组首元素的指针。 选择题 [8.1] 若有定义:`int x,*pb;` 则在以下正确的赋值...

    C语言数组,指针示例程序

    C语言数组,指针

Global site tag (gtag.js) - Google Analytics