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语言中整形变量的指针能否赋值给整形变量?

请问C语言 char类型的指针要怎么赋值?

C语言同类型指针赋值简单问题

C语言 将整型变量赋值为空

C语言指针赋值?

C 语言指针数据类型 ( 指针类型变量 与 指针指向的内存块 概念区别 | 指针赋值 | 指针运算 | 内存赋值 | 内存取值 | 内存修改注意事项 )