1.static修饰局部变量,全局变量,修饰函数
static修饰局部变量时,局部变量出了作用域不销毁,本质上static修饰局部变量改变了局部变量的储存位置,影响变量的生命周期,与程序生命周期一样。
2.全局变量具有外部连接属性。编译+链接=可执行程序
static修饰全局变量的时候,全局变量的外部连接属性就变成了内部链接属性,其他的源文件(.c)就不能使用在使用这个全局变量了。
一个函数本身就具有外部连接属性,但是被static修饰后就变成了内部链接属性,其他文件(.c)就无法使用了。
3.内存划分为一个个单元格,每个内存单元都是一个编号,一个内存单元的大小是1byte,内存单元的编号就是地址,地址就被称为指针。
4.int* p中int表示p指向的类对象是int类型的,*p是解引用操作符,通过p中存放的地址找到p所指的对象,*p就是p指向的对象
5.不管是什么类型的指针都是在创建指针变量,指针变量是用来存放地址的,指针变狼的大小取决于地址存放时候需要多大的空间,32bite位-4byte;64bite位-8byte
int main()
{
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(float*));
return 0;
}
6.结构体是把单一类型的组合在一起的做法
7.
truct Stu
{
char name[20];
int age;
char sex[10];
char tele[12];
};
void print(struct Stu* ps)
{
printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);
}
int main()
{
struct Stu s = { "zhangsan",52,"male","12345" };
//printf("%s %d %s %s\n", s.name, s.age,s.sex,s.tele);
print(&s);
return 0;
}
-> 结构体指针变量->成员名