C语言,变量存储地址,取数据

c语言。a是一个变量,b是一个变量,c是一个一维数组。
已知变量a存放这数据b的地址,如何将变量b的值赋值给c[0]。
例如b的地址为0x20000000,即a=0x20000000。如何将b的值赋值给c[0]?
u32 a
u32 c[10];
a=0x20000000; //a存放着某个变量b的地址

如何通过a获取b的值?并将它赋值给c[0]

如果a是指针变量,则c[0]= *a; 如果a不是不是指针变量,例如c为char类型数组,a为long变量,则先 定义一个char * 变量 ,如 char * ch; 接着 ch = a; 最后 c[0] = *ch;追问

请看补充的问题,谢谢

追答

u32 * s = a;
c[0] = * s;

如果你是32位编程的话,可以这样做
如果是64位的话 ,那 a 应该换成一个 64位的变量

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-28
c[0]=a;或
c[0]=&b;追问

c[0]=a,那c[0]不就是等于0x20000000了吗?请看追问内容

追答

是的,等于0x20000000

第2个回答  推荐于2016-02-17
c[0]=*a;

或者

c[0]=*(int *)a;

楼上也对,稍麻烦追问

请看追问内容

追答

c[0]=*(u32*)a;

本回答被提问者采纳
相似回答