const void *ptr; 在这个例子中,ptr是一个指向void的常量指针,它可以指向任何类型的内存地址,但是指向的内存地址不能被修改。这在函数参数中非常有用,例如: 代码语言:cpp 复制 void printMemory(const void *ptr, size_t size) { // 打印内存内容 } 在这个例子中,printMemory函数接受一个常量指针指向void和一...
void指针意义、Const、volatile、#define、typedef、接续符 1.C语言规定只有相同类型的指针才可以相互赋值。 Void*指针作为左值用于接收任意类型的指针, void*指针作为右值赋给其他指针时需要强制类型转换。 2.在C语言中Const修饰的变量是只读的,本质还是变量。 口诀:左数右指 不可改变: 当Const出现在*号左边时,指...
(void *)型通用指针(无确切类型):它可以指向任何类型的变量,连续存储区的存储单元。任何类型的指针都可以通过显示类型转换变为void*型指针(即作为左值。为了获取其存储的起始地址而不获得大小),即void*是一种特别的指针,代表任何存储类型(不能判断所指对象的存储长度,所以不能引用和参与计算(不能直接进行取内容的操...
int *const j = &i; //常指针, 指向int型变量 (*j)++; //可以改变变量的内容 j++; //错误,不能改变常指针指向的内存地址 } const也可用来限制指针指向的内存不可变,但指针指向的内存地址可变。 int main(void) { int i = 20; const int *j = &i; //指针,指向int型常量 //也可以写成int con...
class Person { public: Person() { m_A = 0; m_B = 0; } //this指针的本质是一个指针常量,指针的指向不可修改 //如果想让指针指向的值也不可以修改,需要声明常函数 void ShowPerson() const { //const Type* const pointer; //this = NULL; //不能修改指针的指向 Person* const this; //this...
voidmain(void){inti=10;//i和j是int型变量intj=20;int&r=i;//r 是变量i的引用int&s;//错误,声明引用时必须初始化i=15;//i 和 r 都等于15i++;//i 和 r都等于16r=18;//i 和r 都等于18printf("Address of i=%u, Address of r=%u",&i,&r);//内存地址相同r=j;//i 和 r都等于20...
const void *a这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量,在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。nst与define两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一void的字面意思是“无类型”,void *则为“无类型指针”...
int foo(void);int main(){ printf("%d\n",foo());return 0;} int foo(){ const int x = 520;int *hack = &x;*hack = 250;return x;} 程序执行的结果如图所示:即使变量x用const修饰了,但是因为是在函数内部定义,所以局部变量必须存储在栈上,而栈是没有只读存储空间的,才能被随意修改,红框...
voidfunc(char*str){ } intmain(){constchar*str1 ="c.biancheng.net";char*str2 = str1;func(str1);return0;} 第7、8行代码分别通过赋值、传参(传参的本质也是赋值)将 const 类型的数据交给了非 const 类型的变量,编译器不会容忍这种...