《数据结构》c编程1

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:21:08
数据类型很重要!但是却不太明白。比如,main,int main 表示返回为int,但是返回哪呢?类似递归?还有如果我定义
int a,那么&a,一定要定义为int*么? 很多书都是这么顺着定义下来,这样写,int 和int*之间的关联是什么?再比方说,我们用的最多的也就到2级指针,再往上,数据类型应该保持一种什么联系?达到一种什么目的呢?貌似很细化了.

以上是初学者我的胡乱思考,请专业人士,提点数据结构学习的意见和方向。能给个简单的数据结构思想的案例最好了!

main也好,int main也好,返回的整数都是交给操作系统的,也就是当你的程序作为exe可执行文件执行之后得到的状态值。这个可以用来作为程序是否正常结束的判断标志,一般用于DOS命令的IF语句。

至于你的第二个问题,很明显看出来你头脑中的概念还很混乱,建议你去看谭浩强的《C程序设计》第三版,如果基本概念都没有搞清楚,想在这里给你讲明白还真不容易。这里我试着给你简单说一下:

在C语言中,一个常规变量(即不是动态变量,而是通过int这样的类型符加以说明的固定变量,谭浩强的书上称之为“静态”变量,我认为不太妥当),一定有三个基本特征:名称,地址和内容。当你用int a;定义一个变量后,这个变量的名称就是a,它本身的地址就可以用&a表示,它的内容就是它的值。那么int *b的意思就是定义个了一个变量,名称叫做b,他自己本身也是有地址的,可以用&b求出来,他所保存的值呢,就和a变量不一样,a变量只能保存整型量,而b则只能保存整型变量的地址值。再往后,如果你有一条语句int **c;定义了一个变量c,那么这个变量的名称就是c,同样它也有自己的地址,可以用&c来表示,但是它的值就只能是指针变量的地址值,且这个指针变量必须是指向整型变量的。因此你可以这么写:
int a;
int *b;
int **c;
float d;
那么 合法的赋值可以是
a=10;
b=&a;
c=&b;
但下面的赋值就是非法的
b=&d;
c=&a;
一般而言,我们对于级联指针的定义也就到此为止了,再往后就过于复杂,不利于保持程序的可读性,所以尽管语法上还可以继续增加*号,但我们不建议这么做。