`
blogfeifei
  • 浏览: 1194461 次
文章分类
社区版块
存档分类
最新评论

字符指针变量和字符数组的区别:

 
阅读更多



简单说一下:
字符(非字符串数组,字符数组和字符串数组是有区别的,字符串数组每个元素都是一个字符串)数组是用来存放字符的数组,在内存中占一段连续的单元。所占内存存放的是字符串。定义方法为:char a[N];N为常量表达式,可初始化。字符指针是指向字符的指针,所占内存单元存放的是所指字符的内存单元。定义方法为:char *p;

完整的解答:
1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的地址(字符串第一个字符的地址),决不是将字符串放到字符指针变量中
2)赋值方式
对于字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值:
char str[14];
str = "I love you!";
而对于字符指针变量,可采用如下赋值:
char *a;
a = "I love you!";
赋值给a的是字符串第一个元素的地址
3)对字符指针赋初值
char *a = "I love you!";
等价于
char *a;
a = "I love you!";
而对数组的初始化:
char str[14] = {"I love you!"};
不等价于
char str[14];
str = "I love you!";
4)如果定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址
char *a, str[10];
a = str;
scanf("%s", a);
先使a有确定值,即使a指向一个数组的首元素,然后输入一个字符串,把它存放在以该地址开始的若干单元中
5)指针变量的值是可以改变的,而数组名是常量
6)用指针变量指向一个格式字符串,可以用它代替printf函数的格式字符串
char * format;
fomat = "a = %d, b = %f/n"
printf(format, a, b);
相当于
printf("a = %d, b = %f/n", a, b);
因此只要改变printf所指向的字符串,就可以改变输入输出格式,这种printf函数称为可变格式输出函数
也可以用字符数组实现:
char format[];
format = "a = %d, b = %f/n"


可以看出,用指针变量指向字符串更简洁

分享到:
评论

相关推荐

    指针数组和数组指针的区别.doc

    这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。 还...

    c语言指针,指针与变量,指针与指针

    指针变量,指针与数组, 指针与函数, 字符串与指针,指向指针的指针

    C语言全书word版CHAR10

    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 ...

    C语言字符串指针(指向字符串的指针)_C语言中文网1

    9.1 1分钟彻底理解指针的概念 9.2 大话C语言指针变量 9.3 C语言指针变量的运算 9.4 数组指针(指向数组的指针) 9.5 字符串指针(指向字符串的

    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 ...

    C语言指针-从底层原理到熟练应用(含源码)

    4. 指针变量 5. 操作指针变量 三、指针的几个相关概念 1. const属性 2. void型指针 3. 空指针和野指针 四、指向不同数据类型的指针 1. 数值型指针 2. 字符串指针 3. 指针数组与数组指针 4. 二维数组和指针...

    C程序中用指针变量作函数参数

    1. 指针变量作函数与变量作函数的区别 c语言规定实参变量对形参变量的数据传递是“值传递”即单向传递、只有实参传给形参,而不能有形参传给实参,在内存中实参与形参是不同的存储单元。在调用函数时,给形参分配...

    C语言指针变量的运算_C语言中文网1

    9.1 1分钟彻底理解指针的概念 9.2 大话C语言指针变量 9.3 C语言指针变量的运算 9.4 数组指针(指向数组的指针) 9.5 字符串指针(指向字符串的

    深入解析C++中的指针数组与指向指针的指针

    指针数组定义:如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址。 形式:一维指针数组的定义形式为:int【类型名】 *p【数组名】 [4]...

    C语言指针与二维数组_C语言中文网1

    9.1 1分钟彻底理解指针的概念 9.2 大话C语言指针变量 9.3 C语言指针变量的运算 9.4 数组指针(指向数组的指针) 9.5 字符串指针(指向字符串的

    fortran指针应用

    指针的概念 指针变量 指针与数组 指针的算术运算 行指针与列指针 练习1 二维数组的指针变量 指向一维数组的指针变量 指针与字符串 返回指针值的函数 指针数组 练习2

    吕鑫:最博大精深的C语言视频教程 第14天 【第1堂课】指针变量对内存数据的操作

    1、探讨字符串指针变量与字符串数组的区别; 2、探讨指针变量的偏移与距离;

    C语言程序设计-指针与字符串.pptx

    用字符串常量为字符指针初始化,其形式与字符数组的初始化类似,却有本质上的区别:字符数组获得字符串所有的字符,而字符指针获得字符串首地址,与字符串内的字符无关。 【例8.4】用指向字符串的指针变量完成两个...

    线性表的顺序实现(数据元素是字符数组)&&字符数组名和指向它的指针区别详解

    那么name是一个字符指针变量,注意它是一个变量,是可以进行四则运算的,它的值是可以改变的。所以: printf(%s,name+20); 没有问题。但是如果是 char name[20];那么name是一个地址常量,值是一个字符串的首地址,...

    指针函数和函数指针 C++代码

    指针变量可以指向变量地址,数组,字符串,自然也可以指向函数了。已知每个函数在编译的时候,系统会分配给函数一个入口地址,函数名表示这个入口地址,定义指向函数的指针变量称之为函数的指针变量。 函数返回值...

    C编程之字符串与指针教程

    ● 数组和指针之间的关系 ● 引用的概念及声明方法,关于使用引用的几点初步建议 ● 如何在本地C++程序中给变量动态分配内存 ● 如何在CLR 程序中动态分配内存 ● 跟踪句柄和跟踪引用的概念,CLR 程序...

    本示例是一个使用C语言中char数据类型的代码示例,该代码读取用户输入的字符,并打印其ASCII值

    3. 字符串常量:字符串在 C 语言中是由多个字符组成的字符数组,因此使用 `char` 关键字可以声明和表示字符串常量。例如:`char* str = "Hello";`,`str` 是指向字符串常量 "Hello" 的指针。 4. 字符型函数返回值:...

    谭浩强C程序设计第三版

    使用字符串指针变量与字符数组的区别 168 函数指针变量 169 指针型函数 170 指针数组和指向指针的指针 171 指针数组的概念 171 指向指针的指针 174 main函数的参数 176 有关指针的数据类型和指针运算的小结 177 有关...

Global site tag (gtag.js) - Google Analytics