C语言中char**是什么意思? 和char*有什么区别呀

如题所述

意思:char ** 指向字符型指针的指针;

区别:

char *字符型指针,指向一个字符;

数据在内存中的存储区域

1、栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。

2、堆:就是那些由new或malloc分配的内存块,在不适用时,要手动用delete或free来释放内存区域。

3、全局/静态存储区:全局变量和静态变量被分配到同一块内存中,他们共同占用同一块内存区。

4、常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改

char**最常使用在main函数中:

int main(int argc,char**argv);

等同于int main(int argc,char*argv[])

等同于int main(int argc,string argv)(C语言中并不直接包含字符串类型,此处便于理解,所以使用string类型)

char是字符变量的说明符

字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。

扩展资料:

字段类型

在MYSQL中,字段类型char是指:使用指定长度的固定长度表示的字符串;比如char(8),则数据库会使用固定的1个字节(八位)来存储数据,不足8位的字符串在其后补空字符。

字符转换

在excel中char函数用于返回对应发于数字代码的字符。其用法:=char(number)

其中,参数number为转换的字符代码,介于0~255之间,char占一个字节,也就是8个二进制位,但它表示的是有符号的类型,所以表示的范围是-128~127;uchar表示无符号的类型,所以表示的范围是0~255。

代数概念

char是characteristic的简写,表示一个环或者域的特征,即最小的非负整数n,使ne=0。(e为单位元)。

参考资料:

百度百科——char(计算机语言关键字)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
char**是二重指针,也就是指向指针变量的指针。 而char*是一维指针,即指向字符变量的指针。
其区别在于,指向地址所存储的值不同。
对于char **p1, *p1的类型为char*型,而**p1的类型才是char型。
对于char*类指针p2,*p2就是char 型。
第2个回答  2019-05-10

c语言中,char* 表示字符指针类型,当其指向一个字符串的第一个元素时,它就可以表示这个字符串。

如char* str="learn c";中,"learn c"是长度为8的字符数组常量,其最后一个元素是'\0',而这句代表执行的结果是将str指向了"learn c"的第一个字符'l',str后面的连续内存依次存放'e','a','r','n',' ','c','\0'

扩展资料

定义char*注意事项:

1、在程序声明变量的时候的*,只是表明“它是一个无符号整数,这个整数指向某个内存地址,一次访问sizeof(type)长度”,不要和(*)操作符混淆。

2、能将二维数组的数组名赋给指针数组的数组名,pai=arr(错),因为两者的类型不一致,二维数组名的类型是指向int[][]型的指针,而指针数组的的数组名是指向int *[]类型的指针。

参考资料来源:百度百科——指针

第3个回答  2019-08-05
指针是一种类型。比如 char* a。一般人写法是把*和a写一起,即char *a。从类型定义上应该是第一种(虽然语法和效果上二者没区别)。char* a的意思是,a变量是一个指针,char型指针,里面存的char的地址。。同理 char**a的正确理解的写法是(char*)* a,即a变量是一个指针,是一个char*型的指针。即里面存的的char*的地址。再说直白点就是(char) *,char是一种类型,(char*)*,括号里面的char*也是一种类型,和int,char平级别的类型。char* a。使用*a取得a的值。同理char** a,**a取得的也是值,该值是个地址,该地址指向a实际的值。简单例子就是我给你个纸条,上面写着我的地址,(相当于char* a)。然后我又给你个纸条,上面写着上一个纸条的地址。
第4个回答  2014-12-03
char*是指针,可以用来表示一维数组,
char**是指针的指针。这个可以用来表示二维的数组