char *s、char s[]区别为:内容修改不同、计算操作不同、指针性质不同。
一、内容修改不同
1、char *s:char *s因为指向常量,所以内容不能修改。
2、char s[]:char s[]因为指代内存中的变量区,所以内容能修改。
二、计算操作不同
1、char *s:char *s是一个指针类型,可以进行计算操作。
2、char s[]:char s[]不是一个声明的指针类型,不能进行正常指针的加减计算操作。
三、指针性质不同
1、char *s:char *s是一个字符指针。
2、char s[]:char s[]是一个字符数组指针。
char *s中的s是指针,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
char s[]中的s是数组首地址,而数组首地址对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变。
首先你的程序要包含头文件
首先我们知道一点,*代表取值符。
其次,我们要明白一点,以为*p可指向以为数组,**p指向二维数组,***p指向三维数组......
最后()在不同的情况下有不同的含义。好现在开始讲解*char(**)与(char*)的区别
1、*char(**)应该表示一个指向二维数组的指针,其效果等同于一个三维数指针
2、(char*)我给出以下两种含义:
a、可定义一个字符型指针
b、将当前对象显示转换为字符指针类型
PS:希望对楼主有帮助。如有必要,希望楼主讲问题描述清楚,多放点代码进来,让我们知道这两句代码是在什么情况下的,因为往往不同环境下,相同代码有不同的含义。
一般的 指针char *a和 字符型数组char a[]完全没差别
char不同 指针指向的是char型的 但是++a后就是指向另一个char型数据了