摘要: 数组与指针的区别在C语言中对于下面的两种情况,是否相同呢?char a[] = "abcdefg";---------------1char *p = "abcdefg";-----------------2在谈到这些区别时,应该先谈一下计算机中对变量是如何存储的。从编译原理中我们知道,对于所有的变量他都会影射到一个符号表中。为了简化,这里给出一种最简单的便于理解的符号表:a0xffaap0xffcc表1 一个简单的符号表示例以上表格中a代表一个变量,0xffaa则为变量a的内容的存储地址;p代表另一个变量,0xffcc为变量p的内容的存储地址。对于数组 阅读全文
posted @ 2013-04-30 11:04 Geekers 阅读(158) 评论(0) 推荐(0) 编辑
摘要: p=(int*)malloc(sizeof(int)*(n+1))malloc 是内存分配分配的空间以字节为单位sizeof(int)*(n+1) 是求一个字节数的过程sizeof(int)就是int类型的字节数,再*(n+1),其实就是连续的n+1个int型数的空间所含的字节数前面二者合起来就是分配了大小为n+1个int型的空间所含的字节数此时(int*)是强制转化为int型的指针,所以p就是一个指向这连续n+1个int的int指针。这种分配内存的方式是C语言中实现的,为什么不直接指明字节数,而用sizeof(int)这种运算是因为对于不同的计算机,对于int的分配空间不一定相同,这样有一. 阅读全文
posted @ 2013-04-30 10:54 Geekers 阅读(2410) 评论(0) 推荐(0) 编辑