0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

一个C语言问题

char *Flash_ptr;                          // Flash pointer
Flash_ptr = (char *) 0x1040;              // Initialize Flash pointer
我对二条语句的理解不知是否正确:定义了字符型指针char *Flash_ptr;那么Flash_ptr本身也被默认为字符型变量。而0x1040却超出了字符型的范围,所以需要用(char *)来进行强制类型转换?其中()表示强制类型转换,(char*)则表示将0x1040强制类型转换为字符型指针。
不甚理解,请高手们指点,谢谢!
提问者:yijie692 地点:- 浏览次数:3196 提问时间:06-29 21:50
我有更好的答案
提 交
11条回答
qwe046 07-09 10:39


1,”Flash_ptr本身也被默认为字符型变量“。是字符型指针变量。
第二句就是对这个指针赋值,
2,0x1040是个绝对地址,可以存放任何类型,而Flash_ptr指针指向的是字符型,
“(char*)则表示将0x1040强制类型转换为字符型指针”。对
njnqn 06-30 19:32
请问LS,"Flash_ptr”一个指向字符型的指针,他本身的变量类型是不确定的?既可以存放字符型大小的数据,又可以存放整型大小的数据?
tqj460771096 07-05 23:07
Flash_ptr = (char *) 0x1040;

这句,表示将指针指向 0x1040这个地址。类型还是指针。
freesea123 07-07 17:04
就是说不管指向字符型的指针还是指向整型的指针亦或者是指向浮点型的指针,他们都是指针型变量,没有普通变量那样具有的数据类型的约束。
袁文豹灬 07-08 20:28
指针就是一个类型,这个类型装的是一个数据的地址,而这个数字有多个类型,char int float double ......
。所以char* 只是表示你这个指针变量Flash_ptr 存储的地址指向的数据类型是char ,而实际的寻址看你的CPU或者系统是多少位的决定了。你这个应该是某个单片机 FLASH擦写操作中的代码吧。:lol
NOTE:Flash_ptr是一个存地址。不是char  
youpukeji668 07-01 07:02
针变量的长度在变,像32位机的话4个字节。。。
vrwfwer 07-09 12:16
指针变量本身也在变  建议少用指针
mingfawolf 06-30 22:05
表示是一个地址呢
yx19911127 07-03 18:27
一个字符指针的用法。
ywytwerw 07-01 23:50
2条语句的意思就是 0x1040是地址 而且地址里面的值为char 型
jfsdwer 07-06 01:19
定义了字符型指针char *Flash_ptr;那么Flash_ptr本身也被默认为字符型变量

这个不对,Flash_ptr是指针变量,不是字符型变量。只是它装着的地址中存储的是个字符型变量。
或者说,它存着一个字符型变量的地址。
撰写答案
提 交
1 / 3
1 / 3