struct printf("%s\n"per.name) per.name= (*p).name =p->name //指向结构体变量的指针变量等价
union 表示共用体 算字节时只求最大的一个
struct 表示结构体
{ int 2个字节
char 1个字节 char name[20];表示20个字节
long 4个字节
float 4个字节(单精度)7位小数
double 4个字节(双精度)常用 14位小数 输出必须是%1.f
}per={“Li Ping”,{'M'},20,175.5};
static //表示静态存储器,就像坐火车只要不下火车座位始终是你的(有利于其他变量的引用)
register //变量直接存储在CPU中,速度快适合频繁调用的局部变量中
auto //默认的都是auto
extern //可以随时引用外部的变量,就像坐汽车,位子是不定的
*p代表的是数值(同时也指向数据地址并表达数据) p代表的是存放数值的地址
‘c’表示字符 “s”表示字符串
void 表示无返回值 return s; 表示有返回值s;
int max(x,y) //(*p)表示指向函数的指针变量
int(*p)();
p=max;
c=(*p)(a,b);
a[5]={"12345"} 错误,字符串长度最后面还要算上“\0” strlen(a[5])不包括‘\0’
p=a[0];
p,a[0],&a[0][0] 相同 p+1相当于 a[0]+1 等同于 a[0][1]
在没有定义的时候 只有在数组元素中默认为a[0],其他情况可能为随机抽取的数
int a[2][3],(*p)[3];
p=a; 是指*(p+1)等于a[1],*(p+1)+1等于a[1]+1 ,所以*(*(p+1)+1)等于a[1][1]
char s[100]
scanf("%s", s) //不需要&符号 s表示的就是数组的地址
if(*a) //意思是a不为空,就是不到‘\0 ’
if(a) //意思是a不为0的任何数都行
(FILE *p)表示定位在*p的文件
if(fs=fopen(source,"r")!=NULL) //表示以写入的方式打开source文件
if(fr=fread(source,"r")!=NULL) //表示以读的方式打开source文件
while(!feof(fs)); //如果文件没有到文件尾则进入循环
%7.1f可以表示为 .1 表示的是保留小数点后面一位,前面的不知道什么意思
%5d表示的是_ _ _33, %-5d表示33_ _ _
float或double表示小数时 5/2=2.5 定义为 double s=0.0;
if(x<100)
else if(x<200) //表示100<x<200 双级套还可以用在for中用于排序
y++ 下一次遇到y才加1
++y 表示先加1再运算
swap(int *p,int *q) //*p=&a表示*p指向a的地址 仅限在定义时使用