C\C++指针变量怎么赋值给普通变量。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C\C++指针变量怎么赋值给普通变量。相关的知识,希望对你有一定的参考价值。
codeblocks没有HKEY类型,只有PHKEY,打开注册表是指针类型,关闭注册表
指针变量指向的是一块内存区域,是一个内存地址,我们要的其实是指针变量指向内存区域地址的内容,我们可以用去内容作用符int *p = new int; int i= &p;可以取出指针指向内存区域的内容,然后将取出的内容复制给普通变量,但是指针指向区域内容要与普通变量的内容匹配。 参考技术A 定义指针是为了读取或存储内存中的数据,而你的指针读取了之后,就可以用地址运算符&来赋给普通变量了,具体方法看推荐答案 参考技术B 强制转换为整形。int *p = &a;
int addr = (int) p;
C语言指针变量怎么转化为普通类型变量?
就相当于定义了两个共用体变量那样子行不行?
比如说
定义一个函数
int A(int a,int *b)
......
return a;
在main()中是
int a,b,c;
a=10;
c=A(a,&b);
在"......"处怎么写才能在A中改变main中变量b的值?
指针变量: 声明 int *p; 语句中 *p 表示 值, p 表示 地址。
普通变量: 声明 int x; 语句中 x 表示 值,&x 表示 地址。
#include <stdio.h>
int A(int a,int *b)
*b=a; //赋值语句即可传递数值
return a;
int main()
int a,b,c;
a=10;
c=A(a,&b);
printf("%d %d %d\n", a,b,c);
return 0;
追问
哦,就是说赋值的时候要加一个*,不能直接是b=×××了
参考技术A 直接在A中用一个赋值语句就可以改变main中变量b的值,例如:*b=10;这样main中b的值就改为10了。C语言中在函数中定义的变量都是局部变量,仅在该函数中可用。虽然 main 和 A 中都定义了名为 b 的不同类型变量,但这两个不是同一个变量,存储的位置也不同,作用的范围也不同。尽管main调用了 A ,但main中的变量b 在A中是不起作用的。但为什么通过A又能直接改变main中的b呢? 这就是 A 中指针变量 b 的作用了,A 被调用时,A中的 b 被赋予了main 中 b的地址,即 A中的指针 b 指向了 main 中的整型变量 b。在A中对 *b 赋值实际上就是给 main中的 b 赋值,也就可以改变main 中 b 的值。 参考技术B *b=xxx就可以了
以上是关于C\C++指针变量怎么赋值给普通变量。的主要内容,如果未能解决你的问题,请参考以下文章
C 语言指针数据类型 ( 指针类型变量 与 指针指向的内存块 概念区别 | 指针赋值 | 指针运算 | 内存赋值 | 内存取值 | 内存修改注意事项 )