C -笔记

本文详细讲解了C语言中的常量概念、存储类别(auto, static, register, extern)的区别,以及变量初始化的技巧。涉及const声明、数组初始化、%d与%4d的区别、寄存器变量和外部函数的定义。
摘要由CSDN通过智能技术生成

杂乱的基础知识

1 const 一旦声明了const,变量的值便不能再修改
PS:
const int days[MONTHS],这个数组里面的值便不能再修改
2 测试%d与%4d的区别,%d是按照原型输出,有多少位就有多少位,另外c语言中数据的宽度是从右边开始算起的,比如%4d就表示数据宽度为4,不够的那空格来补,如果超出四位,则应该原型输出。
3 C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。
4 C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。

1、 用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式

2、 用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。如下为静态局部变量:

注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。

3、为了提高效率,C语言允许将局部变量得值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。例如:

注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。

4、用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。
在C语言中不能被其他源文件调用的函数称谓内部函数 ,内部函数由static关键字来定义,因此又被称谓静态函数,形式为:
static [数据类型] 函数名([参数])
这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。
在C语言中能被其他源文件调用的函数称谓外部函数 ,外部函数由extern关键字来定义,形式为:
extern [数据类型] 函数名([参数])
C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。
5、在c99中规定,可以任意初始化指明下标的元素
PS: int arr[6] = { [5] = 212 };//把arr[5]初始化为212
6、如果使用指明下标的方式进行赋值
int days[MONTHS] = { 31,28,[4] = 31,30,31,[1] = 29 };
7 %4.1f %f是直输出实型数据,“4.1"是对输出的数据做一个规定,夹在”%“和"f"中间,'4.1"中的"4"是指输出总共四位(即四个字符),包括数字,小数点,和空格,他们各占一个字符而”."后面的这个数字"1"是指小数点后保留一位
8、* start++ ++和 * 是同一优先级,但是按照从右想做的执行规则,先++ 再*
但是还是需要先
total=start++ 赋值的结果是start,因为先使用,后++
9、在c语言中,ar[i]与*(ar+i)是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值