摘要: 一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结... 阅读全文
posted @ 2015-09-02 11:21 fenghuan 阅读(6148) 评论(1) 推荐(0)
摘要: 采用指针存储字符串,其实质就是把字符串的首地值附给基类型为char的指针变量,从而可以从字符串首元素开始对字符串进行操作,这里面也存在一点问题. 用这个类子给大家解释解释. int main() { char *p="hello world... 阅读全文
posted @ 2015-09-01 15:33 fenghuan 阅读(626) 评论(0) 推荐(0)
摘要: 1.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明... 阅读全文
posted @ 2015-09-01 10:31 fenghuan 阅读(367) 评论(0) 推荐(0)
摘要: C语言中数组和指针是一种很特别的关系,首先本质上肯定是不同的,本文从各个角度论述数组和指针。一、数组与指针的关系数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值。数组可以在某些情况下转换为指针,当数组名在表达式中使用时,编译器会把数组名转换为一个指针常量,是数组中的第一个元素... 阅读全文
posted @ 2015-09-01 10:21 fenghuan 阅读(11200) 评论(0) 推荐(0)
摘要: 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。魔幻数组名请看程序(本文程序在WIN32平台下编译):#include using namespace std;int main(){ char str[10]... 阅读全文
posted @ 2015-09-01 10:16 fenghuan 阅读(6698) 评论(3) 推荐(7)
摘要: 某日,看到一道比较恶心的C语言的试题,考了很多比较绕的知识点,嘴脸如下:int main(void){ int a[4] = {1, 2, 3, 4}; int *ptr1=(int *)(&a+1); int *ptr2=(int *)((int)a+1);printf("%x, %x/n", p... 阅读全文
posted @ 2015-09-01 09:34 fenghuan 阅读(991) 评论(0) 推荐(1)
摘要: 指向数组元素的指针一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。 int a[10]; //定义一个整型数组a,它有10个... 阅读全文
posted @ 2015-08-31 13:29 fenghuan 阅读(1466) 评论(0) 推荐(1)
摘要: 关于指针和数组斩不断理还乱的恩怨还真是说了不少,不过现在应该已经理清了。有了上一讲的基础,本讲的内容相对来说就比较容易理解了。1.指向函数的指针(函数指针)来分析这样一个声明,void (*f) ( ); 虽然()的优先级高于*,但由于有括号存在,首先执行的是解引用,所以f是一个指针;接下来执行( ... 阅读全文
posted @ 2015-08-27 11:13 fenghuan 阅读(584) 评论(0) 推荐(1)
摘要: 三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/... 阅读全文
posted @ 2015-08-27 11:01 fenghuan 阅读(782) 评论(0) 推荐(1)