虽然用字符指针变量和字符数组都能表示和处理字符串,但它们二者之间是有区别的,不应混淆。
(1)字符数组由若干个元素组成,每个元素中存放字符串的一个字符,而字符指针变量中存放的是字符串的首地址。
(2)初始化方式不同。对字符数组初始化要用stati‘c存储类别,在编译时进行。而对字符指针变量初始化不必加static,在实际执行时进行。
(3)赋值方式不同。对字符数组不能整体赋值,只能转化成份量,对单个元素进行。而字符指针变量赋值可整体进行。例如:
char s[10];
s= \"C++\";/*错,s是常量,怎能被赋值*/
(4)在定义一个字符数组时,编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,但该指针变量具体指向哪个字符串,并不知道,即指针变量存放的地址不确定。例如:
char a[10];
char *p;
scanf(\"%s\",s);/*正确*/
scanf(\"%s\",p);/*非常危险,p的值动态*/
(5)字符指针变量的值可以改变,字符数组名是一个常量,不能改变。例如,有简单程序:
main()
{char s=\"china man\"
s+=6;
printf(\"%s\",s);
}
运行结果:man
分享到:
相关推荐
指针变量是存储了数据地址的一种变量,它可以是数组、字符串、函数或普通变量的地址。 1. 指针变量的定义和初始化 指针变量的定义需要在变量名前加上星号(*),例如:`int *p;`,这里的`p`是一个指针变量,它存储...
1. **字符指针与字符数组的区别** - **存储格式**:字符指针(变量)存储的是字符串的首地址,即一个内存地址(通常为2字节)。而字符数组则是存储整个字符串,每个数组元素存储一个字符。 - **性质差异**:字符...
声明一个指针变量通常用*符号,如`int *p;`表示p是一个指向整型变量的指针。初始化指针时,我们需要使用&运算符获取变量的地址,如`int x = 10; int *p = &x;`。 指针与变量的关系非常紧密。当我们通过指针访问变量...
指针和数组的主要区别在于指针是变量,而数组是集合。指针变量可以存储其他变量的内存地址,而数组是一组相同类型的变量的集合。 在编程中,指针和数组都可以用来实现动态内存分配,但是它们的使用方式和场景不同。...
指针变量需要先声明,然后通过`取地址`操作获取变量的地址。 - 指针有类型,如整型指针、字符串指针等,确保指针指向的数据类型与实际相符。 2. **字符串指针**: - 易语言中的字符串是由字符组成的序列,可以...
在C语言中,数组名和指针之间存在微妙且重要的区别,这往往让初学者感到困惑。虽然在某些上下文中,它们看似可以互换使用,但深入理解它们的本质差异对于编写高效、安全的代码至关重要。 ### 一、数组名与指针的...
1. **存储格式**:字符指针变量中存储的是字符串的首地址,这个地址通常占用2字节。而字符数组则直接存储整个字符串,每个数组元素存放一个字符。 2. **性质**:字符数组名是一个地址常量,一旦初始化后就不能改变...
C++指针及数组应用 C++中的指针类型是一个非常重要的概念,它是C++语言的基础之一。指针类型可以分为两种:静态指针和...指针类型可以分为静态指针和动态指针,而数组是一种类型修饰符,用于定义一组相同类型的元素。
字符指针变量和字符数组有以下几点区别: * 字符数组由若干元素组成,每个元素存放一个字符,而字符指针变量只存放字符串的首地址,不是整个字符串。 * 对数组初始化要用 static,对指针变量不用。 * 对字符数组...
通过以上几点,我们可以看出字符数组和字符指针在C语言中的区别和联系。在实际编程中,应根据需要选择合适的类型,并注意它们在内存中存储和操作的差异。正确地使用字符数组和字符指针,可以帮助我们编写出更高效、...
- **赋值限制**:不可以任意给指针变量赋一个地址值,只能赋给它NULL或已经分配了内存的变量的地址。 - **访问方式**:使用变量名访问变量称为直接访问方式;通过指针变量访问变量称为间接访问方式。 **5.1.6 固定...
在C语言中,字符串数组和字符串指针是处理字符串的两种常用方法,它们在定义、引用、数据空间、存储单元分配和赋值方面各有特点和区别。 首先,字符串数组是由多个字符型元素构成的集合,它在内存中占据连续的存储...
本笔记主要介绍了C语言中的指针和数组相关知识点,旨在帮助读者更好地理解和应用C语言中的指针和数组。 一、变量和内存 在C语言中,变量是存储数据的基本单元。变量可以是整数、浮点数、字符等类型。在内存中,...
首先,我们需要理解指针和数组的基本概念。 指针是C语言中的一个重要特性,它存储了一个变量的内存地址。通过指针,我们可以直接访问和修改该地址处的值。数组则是一系列相同类型的元素集合,它们在内存中是连续...
10.4.2 使用字符串指针变量与字符数组的区别 28 10.5 函数指针变量 29 10.6 指针型函数 30 10.7 指针数组和指向指针的指针 31 10.7.1 指针数组的概念 31 10.7.2 指向指针的指针 34 10.7.3 main函数的参数 36 10.8 ...
声明指针变量使用星号`*`,如`int *ptr;`声明了一个指向整型变量的指针。通过解引用操作`*ptr`,可以访问和修改指针指向的变量的值。指针也可以与数组结合使用,使得我们可以遍历和操作整个数组,或者动态分配内存。...
比如,指针数组中的元素可以是整型指针(int*),字符指针(char*),或者是其他类型的指针。在实际应用中,指针数组的典型用途是存储多个变量的地址,或者是指向数组首元素地址的指针。由于指针数组中的每个元素都...
7. **指针和数组的区别** 虽然在某些情况下,数组名可以转换为指向其首元素的指针,但数组和指针并不完全等价。数组是一个固定大小的数据结构,而指针可以动态地改变其所指向的位置。 8. **指针的其他应用** - **...
对于二维数组,可以通过传递指向一维数组的指针变量来实现对整个数组的操作。 **示例**: ```c #include void modifyMatrix(int (*mat)[4], int rows) { for (int i = 0; i ; i++) { for (int j = 0; j ; j++)...