C语言第三次课总结(作用域,生存期,数组,运算符,取模取余,指针)

C语言第三次课总结(作用域,生存期,数组,运算符,取模取余,指针)

(1)进程是程序的一次执行
内存

#include <stdio.h>
void fun()
{
   int x = 10;
   int y = 20;
   printf("%d",x+y);
   }
   int main()
   {
   int a = 10;
   fun();
   return=0;
   }

//只会给主函数中a分配到栈区,不会给x y ,只有在主函数中调用fun,进入fun后才会给x y分配空间,调用完后x y的空间也就没有了。
//作用域(可见性):此阶段针对编译链接过程,只有在作用域内标识符才能被使用。
//生存期(生命期):此阶段针对程序的执行过程。
局部变量生存期:函数被调用,则创建,调用结束则空间会被释放。
全局变量生存期:从程序执行开始前存放在.data区,直到程序结束。
//如果程序没有编译链接成功,一定是在作用域(可见性)上出现了错误。

全局变量作用域:

**全局变量作用域的示例**
局部变量作用域:

void fun()
{
int x = 100;//变量名相同 但此处x可见性在fun中有效
}
void main()
{
int x = 100;//此处x可见性在main中有效
}

int g-max;
void main()
{
   int a = 10;
   int b = 20;
   int c = a+g-max;
   }
   int main()
   {
   int x = 0;
   int y = 20;
   x = y+x;
   }
   int g-mid=10;

生存期概念示例

生存期
(2)数组
【】括号内的放值要求:大于0 常性整型。
int ar [10];//type+num=40
int ar [10]={12,23,34,45,56,67,78,89}剩余两个空间自动填充0.

**字节个数**
char// 1
short//2
int//4
long int//4
long long//8
float//4
double//8
long double//8
bool//1

(3)运算符
在这里插入图片描述
//左值可读可写 只具有右值则只可读。a=10;可 10=a;不可。

运算符举例
运算符举例
运算符优先级

在这里插入图片描述
//* =是从右到左 如:int a=2 b=3 c=4;a* =b+c;得14
//a++ ++a在单独使用时表达相同但b=a++ b=++a则有区别
//b=a++先取出a放到临时储存空间中再把a给b累加1 再回写给a
//b=++a先把a取出累加1 再回写给a 读给b(尽可能多使用前置++a)。

在这里插入图片描述
取模取余%
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求 整数商: c = [a/b];
2.计算模或者余数: r = a - c*b.
求模运算和求余运算在第一步不同: 取余运算在取商c的值时,向0 方向舍入(fix()函数);而取模运算在计算商c的值时,向负无穷方向舍入(floor()函数)。
例如计算:-7 Mod 4
那么:a = -7;b = 4;
第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入);
第二步:计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。
归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。
当符号不一致时,结果不一样。
另外各个环境下 % 运算符的含义不同,比如c/c++,java 为取余,而python则为取模。

(4)指针(相当于地址 ,对于c语言来说)
基本概念:
在这里插入图片描述//地址有高低无大小,不可以相加但可以进行减法。

示例:

在这里插入图片描述
//printf(“0x%08x\n”,&a);输出宽度为8 前期无宽度用0来填充。输出为小写f,把里面改为大写08X则输出的F。
//在x86下占 4byte=32bite
//在x64下占 8byte=64bite
//int a 与intp 同是变量但类型不同 后者放的是p的地址。
**“
”**的不同:int c=a*b(代表乘法); int *p(代表声明);*p=100(代表指向)。
//p=&a; *p=a; p用来存放a的地址,*p就是a本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值