0721学习笔记(变量存储方式,宏定义)

这篇博客探讨了C语言中的变量存储方式,包括动态变量和静态变量的区别,以及不同存储类别的特点。同时,讲解了宏定义与const常量的使用,强调了宏定义中换行的处理方法和头文件的包含规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于长度太长换行

        如果是宏定义,换行需要加“\”,如果是数组换行,加不加都可以

关于单个数组元素传递

        等价于一个数值传递,不影响原本数组的变量

关于头文件以及函数

        <>所表示的头文件,属于系统包含

        “”所表示的头文件,属于用户自己定义

        main  有且仅有一个,也称为入口函数

        main  里面定义的变量是局部变量:不影响其他范围定义时,重命名冲突,命名灵活,使用方便

        被调函数定义的变量也是局部变量,仅止于被调函数

        被调函数退出时,被调函数定义的变量释放

        在main 外面和被调函数外面定义的变量为全局变量:从定义的地方开始到文件结束之间所包含的函数都可以使用,如上面函数需要使用,可在使用前用extern  【全局变量名】 声明才可使用

        函数之间是平行的,只有调用关系

变量存储方式和生存期

动态变量和静态变量

        静态存储区:全局变量、静态局部变量   可以读写

        动态存储区:函数形象、函数内定义的变量、函数调用时保护现场和返回地址  可以读写

存储类别

        局部自动变量(auto):没有static修饰的变量都是自动变量

        局部静态变量(static):static只赋值一次,然后静态变量一直保存,不可赋予变量值给静态变量

#include <stdio.h>
void coo(int i);

int main()
{
	int i=0;
	for(i=0;i<5;i++)
	{
			coo(i);
	}

	return 0;
}

void coo(int i)
{
	static a=0;
	a++;
	printf("%d  ",a);
}

        结果

1  2  3  4  5

        寄存器变量(register):当某些变量使用特别频繁时,编译器会自动优化为寄存器变量,存储在cpu中的寄存器中

        全局变量(suto&static):存放在静态存储区

宏定义与const

#include <stdio.h>
#define A 10 

int main()
{
	const int a=0;  //a为定值,后面不可重新赋值。 
	printf("%d\n",a);
	a+=5; //错误 
	A+=5; //错误 
	return 0;
}

宏定义与const定义的值均不可修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值