栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言攻略】从零开始的C语言生活——初阶篇(3)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言攻略】从零开始的C语言生活——初阶篇(3)

目录

前言

 全局变量和局部变量

         局部变量

        全局变量

作用域和生命周期

      作用域 

     生命周期

字符串的定义

strlen(计算字符串长度)函数用法

结语


前言

        各位大佬好啊,今天也来分享一下学习笔记呀,前两天课和事情太多了就没啥时间写。ok,没用的话就到此为止吧。

 全局变量和局部变量

         局部变量

       简单说一下局部变量。局部变量就是只能在局部区域使用的变量,要了解局部变量我们就要了解什么是局部区域。局部区域可以理解为一个大括号({ })就是一个局部范围。在局部范围内创建的变量,只能在这个局部范围内使用,出了局部范围就会自动销毁,括号外面是不能使用的。

 在括号内创建的a变量,出了括号就被编译器定义为未定义的标识符a了。

        全局变量

        全局变量正好与局部变量属性相反,他能在整个工程的任意位置使用,在任意位置调用他都不会报错。

当全局变量定义在函数之后,需要在函数加上声明,但是我们没必要自己自找麻烦,使用还是定义在面最好。

 那么假如,我定义了一个相同名称的局部变量和全局变量,编译器会优先调用哪个变量呢?

 由代码可见,当局部变量与全局变量变量名相同时,编译器会优先调用局部变量。

作用域和生命周期

既然说到了局部变量和全局变量,就不得不说变量的作用域和生命周期。

      作用域 

 作用域就是指变量能够在哪些范围内使用,就是变量的作用域。

 

num1的作用域在整个main函数内,而num2在出了大括号后就不能再使用了,这就是他们的作用域。

        全局变量在整个工程的任意地方都可以使用,所以全局变量的作用域就是整个工程。工程结束了全局变量的作用域才结束。

     生命周期

        一辆车从生产到他报废后,这就是它的生命周期,从刚生产出来生命周期开始,到报废生命周期结束。一个变量的生命周期也是如此,从创建产生,到销毁而结束。

 请注意:一定是当程序走到创建变量那条语句后生命周期才开始,作用域也是在生命周期开始后才开始的。下图的num3没有创建,生命周期还没开始,num3是作用域也没有产生。

      全局变量的生命周期是整个工程,当工程结束全局变量的生命周期结束,也可以理解为这个工程的main函数结束后,全局变量的生命周期也跟着结束了。

字符串的定义

C语言有两种定义字符串的方法:

#include
int main()
{
    char str1[]="abcd";
    char str2[4]={'a','b','c','d'};
    //%s 打印字符串
    printf("%sn",str1);
    printf("%sn",str2);
    return 0;
}

       当我们用%s打印两个字符串时,发现str1正常打印了,但是str2打印了一组随机值,为什么呢?我们调试一下代码,我用编译器是【Visual Studio 2019】

按键盘上的F10进入调试状态 

仔细观察监视,str1的末尾位置比str2的末尾多出了一个'',这个''其实就是字符串的结束,当printf打印字符串执行到'',就停止打印,str2的末尾并没有'',所以才会有随机值。改正的方法和很简单,只要在str2的末尾也放一个''就行了。

注意:''是一个字符,也占一个空间大小。

#include
int main()
{
    char str1[]="abcd";
    char str2[5]={'a','b','c','d',''};
    //%s 打印字符串
    printf("%sn",str1);
    printf("%sn",str2);
    return 0;
}

strlen(计算字符串长度)函数用法

头文件:#include,strlen函数是用来计算字符串长度的函数,strlen函数也是读取到''后就停止读取,然后返回参数。

虽然都打印了4,但是明显str2那报了个警告,str2没有终止符''。虽然这不足以说明strlen是遇到''后就终止继续打印了。

 当我对代码稍作修改,在''的后面继续添加字符并放上'',len2依然打印的是4,说明strlen在读到''时就返回了。

结语

天气转凉请各位终于防寒保暖~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347961.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号