目录
前言:
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
关键字static
对比代码1和代码2的效果理解static修饰局部变量的意义:
指针
那地址如何存储,需要定义指针变量
& 取地址操作符 %p - 是以地址的形式打印
总结:
通过本小节的学习,既有上机操作编程,也有理论学习研究,可谓:”趣味有加“!
前言:
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
关键字static
在C语言中: static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
关键字static
在C语言中: static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
1.
static修饰局部变量-称为静态局部变量
1.初始局部变量——代码1
#include//void 在这里表示不需要函数返回任何值 void test() { int a = 1; a++; printf("%d ", a); //此处输出10个2,因为a是局部变量,创建并使用后即销毁,下次使用重新创建 } //生命周期结束 int main() { int i = 0; while (i < 10) { test(); i++; } return 0; }
2.使用static 修饰局部变量——代码2
#include//void 在这里表示不需要函数返回任何值 void test() { static int a = 1; a++; printf("%d ", a); //此处输出10个2,因为a是局部变量,创建并使用后即销毁,下次使用重新创建 } int main() { int i = 0; while (i < 10) { test(); i++; } return 0; }
对比代码1和代码2的效果理解static修饰局部变量的意义:
结论:
static修饰局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
2.
static修饰全局变量-称为静态全局变量
3.
3. 修饰函数-称为静态函数
#define 定义常量和宏
//#define 定义标识符常量 #define M 100 #define STR "hehe" #includeint main() { printf("%dn", M); printf("%sn", STR); return 0; } #define 定义宏 #define ADD(X,Y) ((X)+(Y)) #includeint main() { int a = 10; int b = 20; int ret = ADD(a, b); printf("%dn", ret); return 0; }
指针
1 内存 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
#includeint main() { int num = 10; //#//取出num的地址 //注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址) printf("%pn", &num);//打印地址,%p是以地址的形式打印 return 0; } 那地址如何存储,需要定义指针变量
#includeint main() { //& 取地址操作符 //%p - 是以地址的形式打印 int a = 10;//a要在内存中开辟空间的 printf("%pn", &a); int * p = &a;//p就是指针变量 *p = 20;//* --> 解引用操作符号 printf("%dn", a);//20 //char ch = 'w'; //char * pc = &ch; return 0; } & 取地址操作符
%p - 是以地址的形式打印



