C\C++问题(基础),望高手解答,(回答完整者额外加20~50币),具体在下面:

问题1:
关于强制类型的问题,
我们都知道,C语言的强制类型是 (type)elem
比如 a=(int)c;是把一个非int型的C的值强制为int后赋值给a

但是,我所学到的C都是强制转换1个数据
那么请问:1、一串数据怎么强制转换?
2、(int)a+6-c是强制转换a还是a+6-c ? (int)(a+6-c)是不是转换a+6-c?

问题2:
比如char *str="abcdefg";这里的str是指针,那么指向的“abcdefg”这7个字符,这7个字符的地址是随机的还是强制固定的?求教!!!

问题1:
1、一串数据怎么强制转换?

可以将一串数据的起始地址 强制转换为结构体的指针。
2、(int)a+6-c是强制转换a还是a+6-c ? (int)(a+6-c)是不是转换a+6-c?

(int)a+6-c是强制转换a。 (int)(a+6-c)是转换a+6-c,转换计算结果

问题2:

这7个字符的地址是强制固定的, 编译器在编译链接时 会指定的,放在常量区,运行中不可以更改的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-17
问题1:上面的都说了
问题2:系统会为该指针分配一个地址,似乎随机
第2个回答  2012-09-17
问题1:
1、不知道你指的一串数据是指什么样的。具体转换要求写出来吧。
2、(int)a+6-c 是先转a为int式,再+6-c.这里减C是不允许的。要把c转成int才可以(int)c;
问题2:
这里的str是一个字符型指针,它是指向"abcdefg"的首地址的(也是就是'a'所在的地址);"abcdefg"的地址是在常量内存区域里的一个随即地址;c/c++共有五个内存区域,1.栈内存;2.堆内存;3全局和静态内存;4常量内存。5代码内存区域追问

我发现你们都说什么常量区之类的,能否具体说下

第3个回答  2012-09-17
(int)a+6-c是强制转换a。(int)(a+6-c)是转换a+6-c
char *str="abcdefg"地址是分配一个确定的地址
第4个回答  2012-09-17
一个一个的转换
相似回答