***********************************
关于返回类型:
***********************************
1.常用的类型就不用说了。
2.没有返回数组,因为如果你想返回数组的话,倒不如直接传递地址算了。
3.返回指针。支持返回各种指针。但是要注意指针,指针要很小心的使用,很多的地方是值得注意的。
**************************************
关于内存管理:
****************************************
1.p=(type*)malloc(num*sizeof(type));申请num个类型的空间。
2.p=(type*)calloc(num1,num2*sizeof(type));申请num1个大小为num2*sizeof(type)的空间。
3.free(p)释放所有空间。
4.void *realloc(void *ptr,undigned int size);将原来的空间改变成现在的空间。
****************************************
关于指针的使用:
*****************************************
1.指针与函数。指针函数:指的是返回指针的函数。指向函数的指针:因为函数名就是函数的地址,也是函
数的入口,所以指向函数名的指针称为指向函数的指针。a=max(a,b),a=(*p)(a,b).是等价的。这样的话,
函数就可以当作参数了。例如:int myfunction(double (*f)(double x,int t,float g),double h,int
gama);这样就申明了一个函数,其中参数含有函数参数。
2.二(多)维数组和指针:
行指针:a[0],a[1],a[2]……;*(a+0),*(a+1),*(a+2)……
a[i][j]的地址:a[i]+j,*(a+i)+j;
a[i][j]表示成:*(a[i]+j),*(*(a+i)+j)
数组下标表示:a[i][j]
指针表示:*(*(a+i)+j) *(&a[0][0]+n*i+j)
行数组:*(a[i]+j)
列用下标:(*(a+i))[j]
********************************
关于条件编译:
**********************************
若果就……否则……
#ifdef 标识符
程序段
#else
程序段
#enif
或者
如果……
#ifdef
#endif
/////////////////
如果没有……否则……
#ifndef 标识符
程序段
#else
程序段
#endif
//////////////////
#if 常量表达式
程序段
#else
程序段
#endif
*******************************************
关于文件:
*******************************************
1.文件尾EOF
2.只支持因为和数字的读写;
3.fread和fwrite??
4.读文件时不管是空格还是其他的ASCII码都是一个字符。读字符时要注意这一点,但是在读数据类型时就
会自己去识别。
*******************************************
关于位段结构
*******************************************
上一篇博客已经写过了。