许多程序员对数组名和指针的区别不甚明了,他们认为数组名就是指针,而实际上数组名和指针有很大区别,在使用时要进行正确区分,其区分规则如下:
规则1 数组名指代一种数据结构,这种数据结构就是数组;
char str[10];
char *pStr = str;
cout << sizeof(str) << endl;
cout << sizeof(pStr) << endl;
输出结果为:
10
4
这说明数组名str指代数据结构char[10]。
规则2 数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;
char str[10];
char *pStr = str;
str++; //编译出错,提示str不是左值
pStr++; //编译正确
规则3 指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址;
规则4 数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针;很遗憾,在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
例如:
void arrayTest(char str[])
{
cout << sizeof(str) << endl; //输出指针长度
str++; //编译正确
}
int main(int argc, char* argv[])
{
char str1[10] = "I Love U";
arrayTest(str1);
return 0;
}
分享到:
相关推荐
在C语言中,数组名和指针之间存在微妙且重要的区别,这往往让初学者感到困惑。虽然在某些上下文中,它们看似可以互换使用,但深入理解它们的本质差异对于编写高效、安全的代码至关重要。 ### 一、数组名与指针的...
本文旨在澄清关于数组名是否等同于指针这一常见的误区,并通过具体的代码示例来深入探讨数组和指针之间的关系及其差异。 #### 二、数组与指针的基本概念 1. **数组**: - 数组是一系列相同类型的数据项的集合。 ...
数组指针和指针数组的区别
2. **数组指针**:可以用来处理二维或更高维度的数组,简化数组操作。 3. **函数指针**:在实现回调函数、策略模式等设计模式时非常有用。 4. **指针函数**:通常用于返回动态分配的数组或其他复杂数据结构。 通过...
### C/C++数组名与指针的区别深层探索 在C/C++编程语言中,指针是一种非常重要的数据类型,它提供了直接访问...正确地区分数组名和指针的概念可以帮助开发者更好地利用这两种数据结构的优势,避免常见的陷阱和错误。
然而,实际上数组名与指针有着本质的区别。 第一点,数组名不是指针。从 sizeof vận算符的返回值可以看出,数组名的大小是数组的大小,而指针的大小是指针的大小。例如,在 WIN32 平台下,指针的大小为 4 字节,而...
### C/C++数组名与指针的区别探究 #### 引言 在C/C++编程语言中,指针是一个非常重要的概念。它不仅提供了强大的内存管理能力,还是理解更高级概念的基础之一。与此同时,数组也是这两种语言中不可或缺的一部分,...
- 在使用`sizeof`运算符时,需要注意其对数组名和指针的不同行为。 - 当数组作为函数参数传递时,实际上是按值传递了指向数组首元素的指针。 理解这些区别对于编写高效、安全的C/C++程序至关重要。通过掌握数组和...
数组的指针和指向数组的指针变量 数组的指针和指向数组的指针变量是编程语言中一个重要的概念。数组的指针是指向数组在内存中的起始地址,而指向数组的指针变量是指向数组元素的指针变量。 概念: * 数组的指针:...
### C和C++中数组名与指针的区别 #### 数组名与指针的基本概念 在C和C++中,数组名与指针之间存在一些关键性的区别,这些区别对于理解这两种数据类型及其应用场景至关重要。 - **数组名**: 表示的是数组的起始...
### 指针数组与数组指针的区别 #### 一、基本概念介绍 在C/C++编程语言中,指针是一种十分重要的数据类型,它能够直接处理内存地址,实现高效的数据访问与操作。而在指针的基础上,衍生出了两种常见的结构:指针...
### 数组名与指针的区别 #### 引言 在C/C++编程中,数组名与指针之间的关系一直是困扰初学者乃至有一定经验的程序员的一大难题。很多人误以为数组名等同于指针,但实际上两者之间存在显著差异。本文旨在通过具体的...
数组和指针练习题目(精选) 在编程语言中,数组和指针是非常重要的概念,它们的应用非常广泛,理解基础是非常必要的。本节将通过多种练习题目来加深对数组和指针的理解。 指针基础 指针是一种特殊的变量,它可以...
首先,数组指针和指针数组从字面上看区别就在于数组和指针的顺序不同,但这两种数据结构在内存布局上有着本质的区别。指针数组是一种数组,它存放的是指针类型的数据,每个数组元素都是一个指针,而这些指针可以指向...
本文将详细介绍字符数组和字符指针的概念、特点以及使用方法,并通过具体的例子来展示它们之间的区别。 #### 二、字符数组 字符数组是一种特殊的数组类型,用于存储字符串。字符串通常是由字符序列组成的数据结构,...
关于数组指针和指向数组指针的指针及其new的一些个人理解及其小例子,详细可以参见我的CSDN博客中的文章http://blog.csdn.net/shizhixin/article/details/7050592