发布网友 发布时间:2022-04-30 02:40
共3个回答
热心网友 时间:2023-10-08 20:03
一、”读“”写“能力
char*a="abcd";此时"abcd"存放在常量区。通过指针只可以访问字符串常量,而不可以改变它。
而char a[30]="abcd";此时"abcd"存放在栈。可以通过指针去访问和修改数组内容。
二、赋值时刻
char*a="abcd";是在编译时就确定了(因为为常量)。
char a[30]="abcd";是在运行时确定
三、指向地址所存储的值不同。
对于char**p1,*p1的类型为char*型,而**p1的类型才是char型。
对于char*类指针p2,*p2就是char型。
char*a="abcd";存于静态存储区。在栈上的数组比指针所指向字符串快,慢。
char a[30]="abcd";存于栈上,快。
扩展资料:
char型数据是计算机编程语言中只可容纳单个字符的一种基本数据类型,分为两种,一种是无符号整型数据类型(unsigned char),另一种是有符号整型数据类型(signed char)。
char的取值范围: -2^7 ~ 2^7-1 ;signed char: -2^7 ~ 2^7-1;unsigned char : 0 ~ 2^8-1。
而且关于char还有一个特殊的语言就是char *,它在C/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串。
参考资料来源:百度百科-atof
热心网友 时间:2023-10-08 20:03
两者的区别是char *a[]定义了一个指针数字,即a的每个元素都是字符数组,也就是a是个二维数组;而char(*a)[]定义的是指向*[n]的指针,也就是指向二位字符数组的指针。热心网友 时间:2023-10-08 20:03
由于[ ]比*优先级要高,因此a先与[n]结合,形成a[n]形式,这显然是数组形式,它有n个元素。然后和*结合,*表示此数组时指针类型的,每个数组元素都指向一个char型的变量。