C语言概述二

本文介绍了编程中的变量作用域,强调了全局变量和局部变量的差异,以及extern关键字的使用。同时,讨论了运算符的种类,包括算数、赋值、关系、逻辑和位操作符,以及三目运算符和逗号表达式。还提到了sizeof操作符与strlen函数在计算内存占用和字符串长度时的区别。
摘要由CSDN通过智能技术生成

一、变量的作用域和生命周期

什么是作用域,一个变量在哪里可以用,哪里就是他的作用域,即{}里的范围就是他的作用域,出了作用域,便无法使用。局部变量的作用域就是局部变量所在的局部范围

那全局变量的作用域就是任意地方都可以使用,如果在源文件2创建了一个变量想在源文件1中使用,需要在源文件1中声明;即extern int b;即说明此变量或函数在别处定义的需要在此处引用;

如果局部变量跟全局变量名字冲突,局部变量优先使用;

生命周期

局部变量生命周期为进入该变量的作用域开始,出作用域结束;

变量创建的本质是在内存中开辟一块空间,存放数据;

变量出了作用域就销毁,即把开辟的空间返回给操作系统;

全局变量的生命周期为整个程序的开始与结束;

二、运算符

 算数运算符:+  -  *  /   %取模操作符  ++  -- 前置++先+1在参与计算,后置++先参与计算后++、

赋值运算符: =   +=   -=   *=    /=   >>=    <<=  

关系运算符:<    >    >=    <=     !=    ==     

逻辑操作符:&&逻辑与   ||逻辑或    ! 逻辑非  

逻辑与:运算符两边的表达式同时为真,结果才为真;

补充:int a=0, b=1,c=2;

int d =a++&&b++&++c;  printf("%d %d %d"a,b,c);

结果为 1 1 2;因为逻辑与左边为假,则右边不在计算

逻辑或:运算符两边的表达式都为假则为假,有一个表达式为真,结果则是真

补充: int a=1, b=1,c=2;

               int d =a++&&b++&++c;  printf("%d %d %d"a,b,c);

结果是 2 1 2;因为逻辑或左边表达式为真则右边表达式不计算 

逻辑非:表达式为假则变为真,表达式为真,则变假;

 在C语言中,非0即是真;

这里逻辑与栗子写错了应该是int c=(a>=10)&&(a>b);  printf("%d\n",c);

位操作符也成为二进制操作符:包括左移操作符<<    右移操作符>>    按位非 ~    按位或 |

按位与&    按位异或^   关于二进制讲解请看下篇博客

条件运算符也成为三目操作符:表现形式是 ? :  如果表达式1 a>c?为真则执行表达式2,如果表达式1为假 ,则执行表达式三。 

在此补充一下逗号表达式:逗号表达式就是从左向右依次计算,整个表达式结果为最后一个结果,不是直接计算最后一个表达式的结果。 

三、sizeof()操作符跟strlen()函数的区别

sizeof是一个操作符,是计算数据类型/变量 所占内存空间的大小,单位是字节

1byte==8bit 

1 kb =1024byte;

1 mb=1024kb;

1 gb=1024mb;

1 tb=1024gb;

1 pb=1024tb;

sizeof括号里的表达式不参与实际运算;

如果求字符串长度空格也算一个字符,还有\0.

 

strlen函数():用来求字符串长度;strlen求字符串长度,\0不属于有效长度,但\0是字符串结束标志。

给数组赋值如果没有结束标志,那就会一直找\0知道找到\0,最后求出的长度就会是随机值.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值