- 博客(6)
- 收藏
- 关注
原创 ANSI C类型限定符(const,restrict,volatile,_Atomic)
ANSI C类型限定符我们通常使用类型和储存类别来修饰C中的变量,在标准之中还有这样一些特殊的限定符可以帮助我们更好的修饰C中的变量,它们包括const、volatile、restrict、_Atomic。下面来分别详述它们的用处。1. const:恒常性修饰符使用const修饰符修饰的变量不能更改其值,而且对于const修饰的指针类型有很多值得关注的形式。指针与常量首先由于const类型的变量不可以修改,所以我们也不希望通过普通指针通过指向const来修改其内容,所以我们需要使用指向
2021-03-06 00:27:35 188
原创 C语言中储存类别和内存管理
C语言中储存类别和内存管理储存类别C语言提供了多种储存类别供我们使用,并且对应的有对应的内存管理策略,在了解C中的储存类型前,我们先了解一下与储存类型相关的一些概念。1. 基础概念对象:不同于面向对象编程中的对象的含义,C语言是面向过程编程,不存在这样对象的概念,这个对象指的是值储存所占据物理内存空间。左值:左值是可以指定对象的表达式,它的最简单形式即为标识符,复杂的可以为为指针之类。一个表达式成为左值的前提是它确实指定了一块作为对象的储存空间,例如:int a = 1;//a作为标识符,
2021-03-05 17:40:27 217
原创 C语言中字符串详解
C语言中字符串详解字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建、程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析。什么是字符串?C语言本身没有内置的字符串类型,字符串本质上是一种特殊类型的数组,它的组成元素类型为char,除此之外不受制与数组长度的限制,以'\0'作为结束标志,作为字符串结束的标志。(\0作为一个特殊字符,它的ASCII值为0,但是它不是'0'字符,'0'字符的ASCII值为48。)定义字符串1. 字符串字面量(字符串常量)字符串字面量
2021-03-02 11:34:56 4553
原创 C语言中复合字面量(数组常量)
复合字面量复合字面量,是除了符号常量之外的常量,例如:5是int的字面常量,1.2是double的字面常量,'a’是char的字面常量,"hello"是字符串的字面常量。一般来说,字符常量可以方便初始化变量,而且可以用于相应运算。其中较为特殊的还有数组的复合字面常量。形如:(int [2]){1, 2}我们可以通过这样的字面常量来初始化数组:int a[2] = {1, 3};,这时候我们省略了等号后面的数组类型名是没有问题的。还有可以使用这样常量作为需要的数组参数,这时候就需要标注清楚数组的类型
2021-02-25 10:45:36 1417
原创 C语言中指针和多维数组
指针和多维数组数组名是特殊的指针数组是一个特殊的指针,多维数组也是更为复杂的数组,它们的关系是什么样的呢?我们通过一个简单的例子来比较形象的了解指针和多维数组:int a[2][3];这是一个2*3的二维数组,首先我们清楚数组名就是指向数组首元素的常量指针(它不可以指向其他部分,可以对指向的元素进行任意修改);其次C语言中所谓的多维数组,即是数组的数组,2*3的二维数组,本质上为2个有包含3个int的数据的数组。所以现在我们就可以解释a的含义:a == &a[0]那么对于a[0]
2021-02-25 10:07:40 201
原创 const修饰符相关
const修饰符相关const修饰符表明一个变量是常量,大致分为三类:常量数组(等同于常量指针),常量指针,指向常量的指针。常量数组中数据都是不可修改的,任何试图修改常量数组中的数据的操作都会报错。常量指针,指针本身是常量,是不可以修改它的指向的,但是可以修改它指向变量的数值,它的修饰符一般放在中间,形如:int* const p。指向常量的指针,指针用于指向常量,因为常量具有不可修改的特点,所以任何希望通过普通指针来指向常量然后来修改常量的行为是非常恶劣的。所以如果想指向常量,就
2021-02-19 14:50:16 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人