TC是模拟的老的16位环境,所以是16位的。你的linux是32位,int就是32位。int的大小和具体的C编译器的实现有关系。可以是16,32,或者64位。你可以看看C语言的书里面有讲。不是固定大小的。
如果你想使用固定大小的整数类型,可以使用int32_t, 是一种扩展,在头文件pstdint.h里面可以找到。(不是C语言的标准,但实际中经常使用,很方便)。
是的。malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
我的理解是变量是有类型的, 不同类型的变量所占的存储空间不同.例如64位linux 下每个char 占一个字节, 每个int 占4个字节,
对于一个int 型的指针变量来说, 指针变量加1, 意味着指针指向下一个变量, 指针对应的内存地址实际是加4.
对于char型的指针变量来说, 指针变量加1和地址加1, 没什么区别.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)