修饰全局变量
//代码1 //add.c int g_val = 2018; //test.c int main() { printf("%d\n", g_val); return 0; } //代码2 //add.c static int g_val = 2018; //test.c int main() { printf("%d\n", g_val); return 0; }
代码1正常,代码2在编译的时候会出现连接性错误。
结论:
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
修饰函数
//代码1 //add.c int Add(int x, int y) { return c + y; } //test.c int main() { printf("%d\n", Add(2, 3)); return 0; } //代码2 //add.c static int Add(int x, int y) { return c + y; } //test.c int main() { printf("%d\n", Add(2, 3)); return 0; }
代码1正常,代码2在编译的时候会出现连接性错误.
结论:
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
指针
内存:
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
变量都有地址,取出变量地址如下:
int main() { int num = 10; #//取出num的地址 printf("%p\n", &num);//打印地址,%p--以地址的形式打印 return 0; }
那地址如何存储,需要定义指针变量。
int num = 10; int *p;//p为一个整形指针变量 p = #
指针的使用实例:
#include <stdio.h> int main() { int num = 10; int *p = # *p = 20; return 0; }
指针变量的大小
#include <stdio.h> int main() { printf("%d\n", sizeof(char *)); printf("%d\n", sizeof(short *)); printf("%d\n", sizeof(int *)); printf("%d\n", sizeof(double *)); return 0; } 结论:指针大小在32位平台是4个字节,64位平台是8个字节。
结构体
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。比如描述学生,学生包含: 名字+年龄+性别+学号这几项信息。这里只能使用结构体来描述了。例如:
struct Stu { char name[20];//名字 int age; //年龄 char sex[5]; //性别 char id[15]; //学号 }; 结构体的初始化:
//打印结构体信息 struct Stu s = {"张三", 20, "男", "20180101"}; //.为结构成员访问操作符 printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id); //->操作符 struct Stu *ps = &s; printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps- >id);
写在最后
本章内容为语言的一个简单基础介绍,每一个小的内容将会在之后的博客中介绍,请大家持续关注!!!!