作用域生存期运算符取模

本文详细介绍了程序中的作用域和生存期概念,包括函数作用域、全局作用域以及局部变量和全局变量的生存期。此外,还讨论了动态内存管理,如malloc()和free()的使用,以及指针、运算符、左值和右值的概念。最后,提到了地址操作符及内存区域如栈和堆的区分。
摘要由CSDN通过智能技术生成

作用域和生存期

作用域(可见性)指标识符能够被使用的范围;只有在作用域内标识符才可以被使用。
此阶段针对编译和链接过程
(1)函数中定义的标识符,包括形参和函数体中定义的变量,作用域都在函数体内,也称作函数域。
(2)文件作用域也称全局作用域。定义在所有函数之外的标识符,具有文件作用域,作用域为从定义处到整个源文件结束。文件中定义的全局变量和函数都具有文件作用域。
生存期也叫生命期。此阶段针对程序的执行过程
生命期指的是标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段。
局部变量的生存期:函数被调用,分配存储空间,到函数执行结束,存储空间释放。(存储在stack栈区)
全局变量的生存期:从程序执行开始,到执行后结束,(存储在data数据区)
动态生命期标识符由特定函数调用或运算来创建和释放,如调用malloc()为变量分配存储空间,变量的生命期开始,而调用free()释放空间或程序结束时,变量的生命期结束。(存储在堆区.heap)

操作数程序操纵的数据实体,该数据可以是数值,逻辑值或其他类型。可是常量或变量。

运算符±*/ 可以对数据进行相应操作的符号。

单目运算符,双目运算符,多元运算符
单:a++
双目:c=a+b;
多元:(?:)

左值和右值赋值号左边即左值,右边即右值。
左值(lvalue)可寻址
右值(rvalue)可读

取余和取模的区别当除数和被除数一样时二者并无区别,但是当二者符号不一样时,取余的值符号和被除数一致,而取模的值符号和除数一致。

前置++和后置++的区别当二者不被赋值时,并无区别,但在for语句中建议使用++i的写法。
当二者被赋值以后,b=i++是先将i值给到b再+1,b=++i是先加1再将i给到b。

指针`

int a = 10; 
printf("1==>0x%08x\n", &a);``
printf("2==>0x%08x\n", &a);
printf("3==>%p\n", &a);
printf("4==>%#p\n", &a);
return 0;`

取地址的符号%x,%p,建议用%p。

int p=10,b=0;
int *p;
p=&b; // 等价于int *p=&b;
*p=*&b=b=9;

只要是指针,那么它要么是4字节(32位下)要么是8字节(64位下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值