语言 指针类型-C语言中, 指针类型char*有什么意义。

问题描述

C语言中, 指针类型char*有什么意义。

C语言中,void*与char*之类的指针类型相比,有什么特殊的用途?

解决方案

如果定义成 void * 时,就无法取指针中的数据,因为数据类型不明确。
想要取 void * 中的数据,需要转换成想要的类型指针,如 char * 或 int * .

一般 void * 做参数参数时使用,可以接受 char * 或 int * 等其它类型指针的传入。如果定义成 char * 等固定类型,则无法接收除 char * 外的其它类型指针。

解决方案二:

C语言和C++不同,没有模板,又不支持弱类型的定义,有的时候我们希望写一个方法,能够适用各种类型,比如说qsort这个函数,它对各种类型的数据都能排序。
这时候你说定义int*好呢?还是char*好呢?好在C语言提供了void *,这里就可以用void *。

解决方案三:

char*指向char类型数组等指针。指定了类型
void*可以是任意类型指针。一般做通用类型指针,还可以强制转换回其它指针。

解决方案四:

void*可以是任意类型指针,char*指向char类型

解决方案五:

void*可以是任意类型指针,char*指向char类型

解决方案六:

char*表示是只能指向char类型的一个指针。不能指向其他的类型了
void*可以是指向任意类型的指针。一般做通用类型指针,还可以强制转换回其它指针。

解决方案七:

void*可以是任意类型指针,char*指向char类型,可以强制转换任意指针,有时候需要用到

解决方案八:

C/C++语言中指针的意义
C语言中的char类型

时间: 2024-11-02 01:01:27

语言 指针类型-C语言中, 指针类型char*有什么意义。的相关文章

c语言-C语言中float类型浮点数

问题描述 C语言中float类型浮点数 请问C语言中float类型浮点数的阶码为什么要使用移码表示,这样表示的优点是什么? 解决方案 浮点数的表示中为什么要用移码表示阶码? 解决方案二: 如果阶码(指数)也用补码来表示,就会使得一个浮点数中出现两个符号位:浮点数自身的和浮点数指数部分的.这样的结果是,在比较两个浮点数大小时,无法像比较整数时一样使用简单的无逻辑的二进制比较. http://www.zhihu.com/question/24115452 解决方案三: 因为浮点数正负之分啊

Java 语言中 Enum 类型的使用介绍

Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似 的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的 定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 举个例子来说明 一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现. 清单 1. 常量定义 Public static class RainbowColor { // 红橙黄绿青蓝紫

c语言课程设计-c语言中a=b--<=a||a b!=c怎么算

问题描述 c语言中a=b--<=a||a b!=c怎么算 c语言中a=b--<=a||a b!=c怎么算a=1,b=2,c=3,求计算过程以及计算后ab的值 解决方案 先找逻辑运算符"||" 左边:(a=b--) <= a 计算b--的值,b--的值为2(得到这个值也就让b的值变成了1),赋值给a后a的值为2,(a=b--)的值也就是a的值为2,2<=2成立,所以左边为真 右边:(a+b)!=c,a+b的值为3,c的值为3,所以右边为假 真||假的结果为真 b-

c语言-新手求助 C语言中bmp图像的大小问题

问题描述 新手求助 C语言中bmp图像的大小问题 bmp图像中为什么bfOffBits+biSizeImage(或biHeight*biWidth)不等于bfSize? 解决方案 可以用图片编辑器修改图片大小 解决方案二: height*width*4

c-C语言中 srand((unsigned)time(NULL)) error:表达式必须具有(pointer-to-)函数类型

问题描述 C语言中 srand((unsigned)time(NULL)) error:表达式必须具有(pointer-to-)函数类型 C语言中 srand((unsigned)time(NULL)) error:表达式必须具有(pointer-to-)函数类型 解决方案 srand((unsigned int)time(NULL)); time(NULL)的返回值是 time_t

详解C语言中printf输出的相关函数_C 语言

C语言printf()函数:格式化输出函数printf()函数是最常用的格式化输出函数,其原型为: int printf( char * format, ... ); printf()会根据参数 format 字符串来转换并格式化数据,然后将结果输出到标准输出设备(显示器),直到出现字符串结束('\0')为止. 参数 format 字符串可包含下列三种字符类型: 一般文本,将会直接输出 ASCII 控制字符,如\t.\n 等有特定含义 格式转换字符 格式转换为一个百分比符号(%)及其后的格式字符

C语言中的pause()函数和alarm()函数以及sleep()函数_C 语言

C语言pause()函数:让进程暂停直到信号出现头文件: #include <unistd.h> 定义函数: int pause(void); 函数说明:pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断. 返回值:只返回-1. 错误代码:EINTR 有信号到达中断了此函数. C语言alarm()函数:设置信号传送闹钟头文件: #include <unistd.h> 定义函数: unsigned int alarm(unsigned int sec

C语言中fchdir()函数和rewinddir()函数的使用详解_C 语言

C语言fchdir()函数:改变当前工作目录头文件: #include <unistd.h> 定义函数: int fchdir(int fd); 函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述词. 返回值:执行成功则返回 0, 失败返回-1, errno 为错误代码. 范例 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <

c语言中,一个已定义的指针变量被置空后是如何&amp;amp;quot;记得&amp;amp;quot;它以前所指向的变量的类型的?

问题描述 c语言中,一个已定义的指针变量被置空后是如何"记得"它以前所指向的变量的类型的? 如题,比如定义了一个整型的指针p指向整型变量a : int *p = &a ; 然后将p置空:p = null; 这个时候指针p中所存放的数据即地址已经被清空了,但是再次http://ask.csdn.net/#使用p时还是只能 将其指向整型类型的变量,而不能指向其他类型的变量(比如字符型变量),那么p是 怎么"记得"它在被定义时候的类型的?它的值不是已经被清零了吗?