进程
1.进程 : 程序一次的执行(动态的)
程序相当于乐谱,进程相当于弹奏的过程,故进程有生命周期
由创建而产生,由调动而运行,由结束而死亡
注:程序是静态的
. exe 文件称为可执行文件,可执行文件只是在磁盘上,并不给它分配资源,只有当可执行文件被执行后,才相应的分配资源,首先分配内存资源(代码区,数据区,堆区,栈区)
程序执行时要相应的分配内存(用户空间)
作用域的概念分为:
1.全局变量的作用域:在.date区,在函数外定义的全局变量,作用于全局
2.函数作用域:在.stack区。在函数内部定义的局部变量,仅仅作用于函数内部
3.块内作用域:
for (int i = 0;i < 10;i++)
{
//变量i只在for循环的块内有效,超出块无效,不能访问
}
注: 可见性谈论编译和链接
生存期谈论的是执行
只有程序编译链接成功之后才能谈论生存期
知识点杂记
3.左值:赋值运算符"=“左边;可以取地址;可以取值;可以赋值
右值:赋值运算符”="右边;不可取地址;可以取值;不可赋值
4.typedef: 把一切合法的变量定义转换为类型声明
5.static: 含有记忆功能,变量可见性不变,修饰的变量存放在数据区且编译器只编译一次
6.bool类型: 只有2个值 true(1) false(0) 真有千千万,但是假唯一
例如:
在.c文件中需要引入头文件# include<stdbool.h>;在.cpp文件中可以直接使用
bool x=-1;//此时x为真,x所表示的地址中存放1(只要x不为0,其余全为真)
7.区别“=”和“==”
“=” :表示赋值 int a =10 ; //将10赋值给变量a
“==” :表示比较 if(10= =a) //10与a比较
注:if语句比较时习惯将常量方在赋值语句左边,当少写一个等号时编译器编译不通过。
单目运算符
8 .单目运算符
只有自增(++);自减(- -)可以改变操作数(有回写)的值;!不改变
例如:
a++;a- -;都可以改变a的值;
但是:
int a =10 ; int b =0 ;
b=! ! a ; // a=10为真,!a=0;!!a=1
printf("%d %d \n", a,b) ; // 10,1
++i: 先i+1;后将加1后的值赋值给i
i++: 先将i的值取出,再加1
逗号表达式
9.逗号表达式 (优先级最低)
值为顺序运算的最后一位
例如:
int a =2, int b =3, int c =4;
a=b+c , 20+c ; // a=7
a=(b+c ,20+c); // a=24
int main()
{
int n = 0, sum = 1;
printf("Enter intergers : \n");
while (scanf_s("%d", &n), n != 0)
{
sum *= n;
}
//scanf_s("%d", &n);
//while (n != 0)
//{
// sum += n;
// scanf_s("%d", &n);
//}
printf("The sum is: %d \n", sum);
return 0;
}
空语句
10.空语句