初始c语言的常见错误和盲区

简介: 第一个先来后置++,大体使用上我认为后置++的频率比前置要高**后置++ 先执行表达式 等表达式执行完后 再+**+也就是**先使用 后++**这里面**b=a++ 可以拆分成 b=a a=a+1** 而来到c的时候 a的值已经加1了 即c=11

@TOC

一、前置++与后置++

我们先看两个例题来感受下

在这里插入图片描述

第一个先来后置++,大体使用上我认为后置++的频率比前置要高

后置++ 先执行表达式    等表达式执行完后 再++

也就是先使用  后++

这里面b=a++       可以拆分成   b=a   a=a+1

而来到c的时候 a的值已经加1了   即c=11

在这里插入图片描述

b=++a   可以拆分成  a=a+1 b=a  即b=11

这里是先加加  在使用

c=a     a的值已经在上面加1了   即c=11

二、static的使用

1.修饰局部变量

在这里插入图片描述

结果不难看出是  2 2 2 2 2

a属于局部变量在栈区 函数使用后就会被销毁 所以每次调用 a时

a的值都会被重置成为1 a=a+1  最终每次输出都是2

在这里插入图片描述

现在函数中的a被static修饰  成为了静态区中的

所以这次调用a的值不会随着函数调用结束而销毁

第一次a的结果为 2 依次增加1

最终结果是 2 3 4 5 6

2.修饰全局变量

在这里插入图片描述在这里插入图片描述

extern 用来声明外部符号

定义两个源文件

当运行时 全局变量的值被打印出来在这里插入图片描述

在这里插入图片描述

当用static修饰全局变量时 我们发现会报错

正常情况下使用外部声明(extern)就可以使用了

全局变量具有外部链接属性 ,而当用static修饰后,外部链接属性就会变成内部链接属性 其他的源文件就无法通过链接找到

即此时全局变量只能在本身源文件内部使用

3.修饰函数

在这里插入图片描述在这里插入图片描述

这里依然定义两个源文件

找到add函数 并得出结果8

在这里插入图片描述在这里插入图片描述

这里使用static修饰后报错

**函数也是具有外部链接属性的 其他源文件使用声明就可以

但是被static修饰后 就变成了内部连接属性 只能在本身的源文件中使用了**

4.总结

具有外部链接属性的一个程序中的其他源文件都可以使用(没有被static修饰过的全局变量 函数 )

而具有内部链接属性的只能在本身的源文件中使用(static修饰过的全局变量 函数)

目录
相关文章
|
5月前
|
C语言
【C语言】:总结动态内存的常见错误
【C语言】:总结动态内存的常见错误
33 0
|
3月前
|
C语言 索引
C语言编译环境中的 调试功能及常见错误提示
这篇文章介绍了C语言编译环境中的调试功能,包括快捷键操作、块操作、查找替换等,并详细分析了编译中常见的错误类型及其解决方法,同时提供了常见错误信息的索引供参考。
|
编译器 C语言
【C语言】动态内存分配malloc,realloc等函数使用和常见错误(上)
【C语言】动态内存分配malloc,realloc等函数使用和常见错误(上)
91 0
|
C语言
【C语言】动态内存分配malloc,realloc等函数使用和常见错误(下)
【C语言】动态内存分配malloc,realloc等函数使用和常见错误(下)
136 0
|
编译器 C语言 数据安全/隐私保护
关于【C语言】中scanf与getchar的用法和常见错误详解 2
关于【C语言】中scanf与getchar的用法和常见错误详解
175 0
|
程序员 C语言
关于【C语言】中scanf与getchar的用法和常见错误详解1
关于【C语言】中scanf与getchar的用法和常见错误详解
152 0
|
C语言
《C语言程序设计进阶教程》一3.2 常见错误
本文讲的是C语言程序设计进阶教程一3.2 常见错误,本节书摘来华章计算机《C语言程序设计进阶教程》一书中的第3章,第3.2节, Intermediate C Programming[美] 陆永祥(Yung-Hsiang Lu) 著 徐东 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1235 0
|
C语言
c语言中常见错误总结
1、输入double类型的数据的方式是: double num; scanf(“%lf”,&num); scanf_s(“%lf”,&num,sizeof(double)); 2、unsigned类型和int类型的进行相加,这时候int->unsignedint。总结:一个负整型和一个无符号整型进行相加一定是整数。 3、关于指
1001 0
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
7天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
23 6