十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一步一步分开来看
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、广南网站维护、网站推广。
data[5]是一个数组,内有5个数据, 再看前面的char*, 是指这5个数据的类型为char*
即: 数组内每个数据是一个指向字符串的指针, 调用时data[0]就是一个char*, 即字符串
如要求输入5个学生的姓名, 就是用的这种数据结构
如果要返回,这个char*数组, 直接返回这个数组名, 但是会存在风险, 建议定义数组时用malloc分配内存.
以按照com的内存管理方法来做。
标准做法是函数内部分配内存,并返回分配的内存的大小。调用者负责释放内存。(可以参考FormatMessage函数的做法)
比如:
//函数中char* getXXXX(int* XXX){ char* temp = new char[LEN];//分配内存 *XXX = LEN;//返回大小 ...... return temp;//返回char*}//调用者int XXX = 0;char* XXXX = getXXXX(XXX);.......delete XXXX;
C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型。
char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中不指定为signed/unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。
关于char还有一个特殊的语言就是char *,它在C语言中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串。
C语言中char的不同应用:
1、字符型(char)
字符型(char)用于储存字符(character),如英文字母或标点。严格来说,char 其实也是整数类型(integer type),因为 char 类型储存的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。
C 语言中保证 char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为 char 的位数,所以一个字节可能是 16 位,也可能是 32 位,而不仅仅限于 8 位。
2、声明字符型变量
字符型变量的声明方式和其它类型变量的声明方式一样:
char good;
char better, best;
以上代码声明了三个字符型变量:good、better,和 best。
char是分配1字节,存储的是ASCII码,A:65,a:97;
在命名char类型是不要使用双引号,c中必须单引号,在java中就高级点了什么都可以。
补充:printf()输出时对于char有点不同,使用“”%d“是输出字符代表的ASCII码。使用:%c,是输出单个字符;使用%s:就是输出多个字符了。
扩展资料:
C语言中的基本类型:
1、算数类型:
它们是算术类型,包括两种类型:整数类型和浮点类型。
2 枚举类型:
它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
3 void 类型:
类型说明符 void 表明没有可用的值。
4 派生类型:
它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。
数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。在本章节接下来的部分我们将介绍基本类型,其他几种类型会在后边几个章节中进行讲解。
void 类型:
void 类型指定没有可用的值。它通常用于以下三种情况下:
1、函数返回为空:
C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status)。
2、函数参数为空:
C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void)。
3、指针指向:
类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。
参考资料来源:百度百科-char
C语言中,函数的定义格式:函数返回值类型 函数名 (形参列表)。
所以,返回值为char* 的函数指针的定义格式是:
char* (*指针变量名)(函数形参列表)
{
函数体;
}