不理解指针,是因为有人教错了你。
有人告诉你,指针是“指向”某某某的,那就是误导你,给你挖了个坑。初学者小心不要误读这“指向”二字。
第一,“指针”通常用于保存一个地址,这个地址的数据类型在定义指针变量时确定。
举个例子,做个比较:
int a; //定义一个变量a,用于保存一个int类型。
int * b; //定义一个指针变量b,用于保存一个地址,这个地址所保存的数据应该是int类型。
第二,是变量就应该可以赋值,指针变量也一样。但一般不会给指针直接赋值一个数值,而是将其他变量的地址赋值给指针,或者其他指针的值赋值给这个指针。
继续上面的例子:
b=&a; //把变量a的地址赋值给b。“&”操作是取变量的地址。
继续举例:
int * c; //我们又定义一个指针c
c=b; //将b的值赋值给c,上面已经知道b是指针,它的值是a的地址,那么现在c 的值和b一样,也是个a的地址。
第三,指针变量保存的值,也就是地址是可以变的。
举个数组初始化的例子:
int d[100];
int * e;
e=&d[0]; //e保存了数组d的第一个数据的地址
for (int i=0; i<100; i++){
*e = 0; //把该地址中的数据赋值0
e++; //地址累加一次,也就是数组中下一个数据的地址
}
指针和其他变量一样,可以运算(一般是加减),也可以重新赋值。
今日学习寄语:
1、要么做第一个,要么做最好的一个。
2、信念和目标,必须永远洋溢在程序员内心。3、最累的时候,家人是你最好的归宿。
4、C程序员永远不会灭亡。他们只是cast成了void。
5、真正的程序员认为自己比用户更明白用户需要什么。
6、退一步海阔天空,这是一种应有的心境。
7、过去的代码都是未经测试的代码。
8、优秀的判断力来自经验,但经验来自于错误的判断。
9、测试是来表明bug的存在而不是不存在。
10、我们这个世界的一个问题是,蠢人信誓旦旦,智人满腹狐疑。
11、一个好汉三个帮,程序员同样如此。
12、看再多的书是学不全脚本的,要多实践。13、无私奉献不是天方夜谭,有时候,我们也可以做到。
14、世界上只有两句真理:1、人一定会死。2、程序一定有Bug。
15、UNIX很简单。但需要有一定天赋的人才能理解这种简单。
16、程序中蕴含着很多的道理,唯有大彻大悟者方能体会其中的奥妙。
17、编程中我们会遇到多少挫折?表放弃,沙漠尽头必是绿洲。
18、做技术一定要一颗恒心,这样才不会半途而废。
19、不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
20、请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件。