第四,指针有啥用。
比方说,我们有个函数,如下:
int add(int x){
return (x+1); //把输入的值加1并返回结果。
}
好了,应用的时候是这样的:
{
int a=1;
a=add(a); //add函数返回的是a+1
//现在 a等于2
}
很简单吧,就是把a都累加一次。
用指针怎么写:
void add(int *y){ //给入的是一个int指针,是一个地址。
*y = *y + 1; //* 是指引用 这个地址所保存的变量
//这条语句的意思就是,把这个地址里的值加1,然后放回这个地址。
}
把这个函数用起来:
{
int a=1;
add(&a); //把a的地址传到函数里
//add函数,就是把a的值加1,再放回到变量a里。
//现在a等于2
}
试想一下,如果我们要对一个数据结构里的数据进行处理,那是不是就该传入这个结构的地址,在函数中依靠指针来引用这个地址的数据结构,进行运算。
第五,若已有一个指针变量,可不可以用另外一个指针来保存这个变量的地址呢。
可以的。
一个变量保存另一个指针的地址,那它就是通常所说是“指针的指针”了。
通常,指针的指针多用做(或指的是)函数指针或数据结构中有指针的情况。初学者搞不清,就不要勉强了。
第六,空指针可怕吗?
我们知道,一个变量要赋值后才能用,指针也是一样。指针不赋值(不给定地址)就拿来用,是不是也要出错。这个就是空指针。一般把指针赋值为Null,就是表明这个指针是空的,不能用。所以程序中一定要经常判别指针不是Null才能用。
最后,初学C语言,最好把复合的语句拆开来看,比较容易理解。像 int *a=&b; 这种,拆成
int * a;
a=&b;
就好理解了。
上面所说的,是指针比较基础的东西,希望能帮助初学者学习理清思路。
今日学习寄语:
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、请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件。