可以给指标变数赋一个整数作为地址值吗
可以给指标变数赋一个整数作为地址值吗
可以。加一个强制型别转换就行了。要注意转换后的型别要和指标指向的型别一致,并且这个整数的位长不能超过指标的位长。 比如: 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);
}