#include "stdafx.h"
#include <iostream>
using namespace std;
void r(void *n);
void main()
{
unsigned int ui;
unsigned long ul;
r(&ui);
r(&ul);
}
void r(void *n)
{
*n = 0;
*n = *n - 1;
cout << *n << endl;
}
E:\c\test60\test60.cpp(68) : error C2100: illegal indirection
E:\c\test60\test60.cpp(69) : error C2100: illegal indirection
E:\c\test60\test60.cpp(69) : error C2100: illegal indirection
E:\c\test60\test60.cpp(69) : error C2036: 'void *' : unknown size
E:\c\test60\test60.cpp(70) : error C2100: illegal indirection
为什么编译会出现上述错误? 要怎么改?
谢谢啊 不过我是希望传递进函数的变量类型是未知的 对未知的变量类型作操作 这应该怎么办?
C++有关函数中void指针的问题
首先你这个函数就错了。你是不能直接对void指针进行操作的。如果你知道传进来的是何种数据,你在进行操作之前,得先进行转换,比如说:int *a = (int*)n \/\/n是形参 a=1;void r(void *n){ int *a=(int*)n;a = 0;a = *a - 1;cout << *a << endl;} int main(void){ unsi...
C++指针问题...为什么调用函数中要用void?
void*说明返回的是通用指针,不是说没有返回值。需要用强制转换成具体的类型。比如函数malloc返回的就是void*,需要根据不同的指针类型转换。如 int *a;a = (int*)malloc(sizeof(int));如果是你说的是以函数指针当做参数的,void*说明这个参数可以接受不同类型的函数。
C\/C++中,void*指针做形参的问题,下面swap函数,为何要强转为usigned cha...
void*指针不可以进行如下操作:int a=5;void *p=&a;int b;b=*p;所以要访问p指向的空间中的数据,必须把void*转化成为别的类型。为什么选择unsigned char作为被指向的类型呢?首先,必须选择一个1个字节的数据类型,否则如果iDataSize不是偶数,最后几位就没有办法安全地复制了。(除不尽)其次,用...
void是什么意思 C++中的void关键字解析?
需要注意的是,void指针不能直接进行操作,因为它不知道具体指向的数据类型。如果需要使用void指针指向的数据,需要将其转换为具体的数据类型。例如:在C++编程语言中,void是一种关键字,用于指示函数不返回任何值,或者指示指针不指向任何具体的数据类型。void可以作为函数的返回类型,也可以作为指针类型的修...
C中void指针的问题
void a;这行语句编译时会出错,提示“illegal use of type ‘void‘”。不过,即使void a的编译不会出错,它也没有任何实际意义。void真正发挥的作用在于:(1) 对函数返回的限定;(2) 对函数参数的限定。我们将在第三节对以上二点进行具体说明。众所周知,如果指针p1和p2的类型相同,那么我们...
C++干货系列——起底万能指针void*
void*的出现源于C语言,它作为通用指针,可以指向任何类型,但同时也带来了一些限制。在内存操作函数如memcpy和memset中,void*能简化类型信息,提高灵活性,但强制类型转换和解引用的缺失增加了使用难度。当delete一个void*时,如果没有正确的类型转换,析构函数不会被调用,可能导致内存未释放。void*与...
void使用
cint function(void) { return 1;}而在C语言中,尽管可以给无参数函数传递任何类型的参数,但在C++中这是不允许的,这强调了参数类型的重要性。void指针的使用需谨慎,按照ANSI标准,不能直接对void指针进行算法操作,但在GNU编译器中有所放宽。在实际编程中,应遵循ANSI标准,如使用(char *)进行...
C\/ C++中的void有什么作用?
void 被翻译为"无类型",相应的void * 为"无类型指针"。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void 的作用 1.对函数返回的限定,这种情况我们比较常见。2.对函数参数的限定,这种情况也是比较常见的。一般我们常见的就是这两种情况:(1)当函数不需要返回值值时,...
void 型指针的高阶用法,你掌握了吗?
void指针,作为C语言中通用指针的代表,其使用方法灵活多变,是实现高级编程技巧的关键。在IAR for ARM 8.40.1的测试环境中,我们将探讨void指针的妙用。何为void指针?void指针是C\/C++中用于表示纯粹地址的约定,它不归属于任何特定类型。这意味着,void指针在使用时,其指向的对象类型未知,不能进行...
C++的函数返类型是void为什么返回智能指针
void 型 函数本身不能返回值,但可以通过参数 返回 值 或者 指针。void* 型指针是特殊的指针,它可以指向任何类型的对象。 所以void* 型 函数, 能返回 void* 型 指针,它是特殊的指针,它可以指向任何类型的对象。void* 它不同于 void.