可以给指标变数赋一个整数作为地址值吗

 我来答
温屿17
2022-10-05 · TA获得超过1.2万个赞
知道小有建树答主
回答量:827
采纳率:0%
帮助的人:95.2万
展开全部

可以给指标变数赋一个整数作为地址值吗

可以。加一个强制型别转换就行了。要注意转换后的型别要和指标指向的型别一致,并且这个整数的位长不能超过指标的位长。 比如: int addr = 0x10000004;int *p; 然后在后面的某处就能这样用: p = (int *)addr; 这个在微控制器程式设计里面是很常见的。

5.以下叙述中错误的是( ) A)可以给指标变数赋一个整数作为地址值 B)函式可以返回地址值

A(指标变数的值不是普通的整数,是表示地址的值,有数字有字母的)

直接给指标变数赋一个整数值,程式能工作吗

给指标赋值的一定是个可用的、有效的地址才行。
假设当前使用的嵌入式系统在地址0x10000000处有个8位的暂存器可以写,则:
unsigned char *p;
p=(unsigned char *)0x10000000;
*p=0x8a; 给该暂存器赋值0x8a

不能直接将一个证书作为地址值赋给指标变数,为什么?可以给个例项吗?

不是证书,是整数吧,还有你的问题说的不是很详细,我猜测你可能想问的是:
(1) 想获取一个整数在记忆体中的地址,比如int a = 5;你获取a的记忆体地址,那应该写成 int* address = &a;,即使用取地址符号,注意只能对变数取地址,不能对常数取地址;
(2) 想直接对指定地点的记忆体进行读写,比如你想读取0x8000的位置,当作一个整数来读,那么你直接写int a = 0x8000;是不可以的,应该是int a = *(int*)0x8000,首先把0x8000转化为一个int型指标,随后对这个指标解引用,这样你读取或者改变a,都相当于直接改0x8000地址的内容

指标变数可以直接赋值吗

指标变数一般是不可以直接赋值的,因为直接赋值的话,就是让这个指标指向这个赋值的地址,万一这个地址是你计算机内部的某个程式的或者是系统的某个地址,而你对这个指标的值又改变了,那么你的计算机系统就会出现问题,可能导致系统不能正常执行活着程式出错等等。但是NULL是一个空地址,即0,它不指向任何地址,所以可以赋值为NULL

c++中,为什么不能用一个整数给一个指标变数赋初值?

指标说白了就是一个用来储存记忆体地址的变数,而整数则是一个记忆体地址指向的内容,可以把整数的地址赋给指标,但是不可以把内容赋给地址.

两个指标变数可以相互赋值吗

当然可以啊,变数的本质是一样的,比如
int *p1,*p2,a=10;
p1=&a;
p2=p1;
如此p1,p2都指向a。

C++ 用指标变数将一个整数字符串转变为一个整数

#include <iostream>
using namespace std;
int fun(char *s)
{
int i, sum = 0;
for(i=0; s[i]!=0; i++)
{
sum *= 10;
sum += s[i]-'0';
}
return sum;
}
int main(int argc, char **argv)
{
char s[] = "2394723";
cout << fun(s) <<endl;
return 0;
}

我想要把一个十六进位制数直接作为地址赋值给一个指标变数,eg: int *p; p=0

你确定12ea8765里是存的int吗?

怎么使用scanf函式将整数赋值给指标变数

一楼完全正确
也可这样 更简洁
#include<stdio.h>
void main()
{ 告诉你个书上都不写的
int a,*p=&a; 指标*p是没有地址的
scanf("%d",p); c不给指标变数记忆体
printf("%d\n",a);
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式