C语言10-字符串
1. 字符串的定义方式和底层细节1.1 定义方式 利用字符数组+双引号:char 数组名[长度] = "xxx"; 将字符串地址储存在指针变量(指针+双引号):char* 指针变量名 = "xxx"; 1.2 底层细节 在实际储存的时候,C会将字符串保存成字符数组进行保存,并且末尾要加上’\0’ 数组的长度要么不写,写的话要把结束标记的空间预留出来 第一种定义方式利用字符数组定义,其内容可以发生改变 第二种定义方式定义字符串,会把底层的字符数组放在只读常量区(不可以修改,可以复用)(复用指:如果创建的新的在只读常量区已经存在,那么会直接引用那一个) 2.字符串数组2.1 利用二维数组基本格式: 123456char strArr[3][y] = { "AAAAAAA", "BBBBBBB", "CCCCCCC"} 2.2 利用指针数组将五个字符串的指针放入一个数组: 123456char* strArr2[3] = { ...
C语言09-数组与指针
1.数组1.1 基础概念数组是用来存储一组相同类型的数据的集合。数组中的每一个元素都使用相同的类型,并且在内存中是连续存放的。 1.2 一维数组1.2.1 一维数组定义的三种方式: 数据类型 数组名[ 数组长度 ]; 数据类型 数组名[ 数组长度 ] = { 值1,值2 ...}; 数据类型 数组名[ ] = { 值1,值2 ...}; 1.2.2 指定初始化器(C99)C99标准引入了一种新语法,允许程序员通过指定下标来初始化数组的某些特定位置。 数据类型 arr[n] = {[x] = xx, [y] = xx}; 注意:在[i] = xx指定初始化器后如果定得有值,则该值为数组中的第i+1项,没有定义的位置为0 1.2.3 给数组元素赋值数组元素可以通过下标直接赋值。赋值方式为:arr[0] = 5;。下标从0开始,因此arr[0]表示数组的第一个元素。 1.3 多维数组1.3.1 二维数组定义方式二维数组定义的四种方式: 数据类型 数组名[ 行数 ][ 列数...
C++01-基础
1. C++基础1.1 注释作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码 两种格式 单行注释:// 描述信息 通常放在一行代码的上方,或者一条语句的末尾,==对该行代码说明== 多行注释: /* 描述信息 */ 通常放在一段代码的上方,==对该段代码做整体说明== 1.2 变量作用:给一段指定的内存空间起名,方便操作这段内存 语法:数据类型 变量名 = 初始值; 1.3 常量作用:用于记录程序中不可更改的数据 C++定义常量两种方式 #define 宏常量: #define 常量名 常量值 ==通常在文件上方定义==,表示一个常量 const修饰的变量 const 数据类型 常量名 = 常量值 ==通常在变量定义前加关键字const==,修饰该变量为常量,不可修改 1.4...
C语言08-函数
1. 函数的基本结构和作用1.1 定义、声明、调用函数定义包括函数的返回类型、函数名、参数列表和函数体。函数体是执行的代码块。 1.1.1 声明函数的声明(也称为函数原型)告诉编译器函数的名称、返回类型和参数类型,而不包含函数的具体实现。函数可以在定义前进行声明,以便在定义之前使用函数。 1return_type function_name(parameter_list); 1.1.2 定义函数定义包括函数的返回类型、函数名、参数列表和函数体。函数体是执行的代码块。 123return_type function_name(parameter_list) { // 函数体} 1.1.3 调用函数定义好后,可以通过函数名和参数列表来调用它。在调用时,参数的顺序和类型必须匹配。例如: 1int result = add(5, 3); 2. 函数参数2.1 形参和实参函数的参数允许在调用时传递数据,函数根据传递的数据执行不同的逻辑。 形式参数:函数定义中使用的占位符,如 ch 和...
C语言07-字符输入/输出和输入验证
1.输入输出1.1 字符输入输出 (I/O) 概念 getchar() 和 putchar() 函数用于处理单个字符的输入和输出。虽然这种方式可能效率较低,但对于处理普通文本仍然非常适用。 程序通过循环读取输入的字符并输出,直到遇到指定的结束符(如 # 或 EOF)。 1.2 文件流与标准 I/O文件是存储在设备(如硬盘或光盘)上的数据单位,程序可以通过文件流来读写文件。 流 (Stream) 是一种从输入输出设备进行数据传输的机制。数据通过流从程序传输到终端或文件等。 键盘输入和文件输入可以通过类似的方式进行处理。在 C 语言中,程序通过流接口处理输入输出。 标准输入流 (stdin)、标准输出流 (stdout) 和标准错误流 (stderr) 是典型的 I/O 流应用。 1.3 文件结尾的处理在 CP/M、IBM-DOS、MS-DOS 等早期操作系统中,使用特定的字符(如 Ctrl+Z)作为文本文件的结束符。 现代系统中文本文件可能不再使用此方法,而是根据文件的大小或者 EOF 结束符来判断文件结束。 1.4...
C语言06-C控制语句:分支和跳转
1. if语句1.1 简单if语句123if (条件) { // 当条件为真时执行的代码} 1.2 if-else 结构 分支语句的作用:if语句用于选择是否执行某个操作,而else用于在不满足if条件时执行另一种操作。这种二选一的分支结构在编程中很常见。 匹配规则: 在多个if和else语句连用的情况下,else语句总是与最近的if配对。除非你使用了大括号{}明确将if语句块分组。 123456if (条件) { }else{ } 1.3 多重选择 else if 多条件分支结构: else if用于处理多个条件的情况,它在if和else之间插入更多的条件判断。通过else if可以根据不同的条件执行不同的代码块。 123456789101112if () { ;} else if () { ;} else if () { ;} else { ;} 1.4...
C语言05-C控制语句:循环
1. 三种循环语句1.1 while语句while循环是一种前测试的循环语句,也就是说在每次执行循环体之前,都会先检查条件是否满足。只有条件为真时,循环体才会被执行。循环体执行结束后,再次检查条件,条件为真则重复执行。 语法: 123while (条件表达式) { 循环体} 特点:适用于循环次数不确定、仅当条件满足时执行的场景。 1.2 for语句for循环是一种前测试的循环语句,通常用于在已知循环次数时使用。for循环由三个部分组成:初始化语句、条件判断和循环控制语句。 1234for (初始化; 条件; 更新) { 循环体} 初始化在只在第一次进入循环前执行,更新在每次循环结束后执行 1.3 do…while循环do...while循环是一种后测试的循环语句,即循环体至少会执行一次,然后再检查条件是否继续执行。 1234do { // 循环体} while (条件表达式); 2.数组简介2.1...
C语言04-表达式和语句
1.基本运算符1.1 赋值运算符 == 的作用是将右侧表达式的值赋给左侧变量 左侧的变量必须是可以存储值的左值(lvalue),即变量、数组元素或结构体成员等可修改的存储位置。 用于储存值的数据储存区叫做数据对象 链式赋值:a = b = c = 5; // 先将 5 赋值给 c,然后将 c 的值赋给 b,最后将 b 的值赋给 a 1.2 算术运算符 除法 / 在整数运算中,返回的结果是整数(去掉小数部分),会直接截断小数部分。 1.3 关系运算符 注意返回值类型是int,true是1,false是0 1.4 逻辑运算符 1.5 递增递减运算符 ++和–可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。 a++和++a都会给a变量加1,区别在于a++是a+了1之前的结果,++a是a+了1之后的结果(例如a是10,那么a++就是10,++a就是11,而两者过后的a都是11) 1.6 符号运算符 1.7...
C语言03-字符串和格式化输入输出
1.字符串简介1.1 char类型数组和null字符C没有专门储存字符串的变量类型,字符串都被存在char类型的数组中,数组由连续的存储单元组成,末尾\0是空字符结尾,数组是同类型元素的有序序列 声明:char 数组名[] 方括号代表这是一个数组,里面可以填数字表明该数组中的元素数量 printf()中**%s**告诉pinrtf打印一个字符串 1.2 strlen()函数string.h头文件包含了strlen()函数,strlen()函数用于给出字符串中的字符长度,不包括结尾的空字符 函数返回的类型是 size_t,这是一个无符号的整型,适用于表示大小。 sizeof 是一个非常有用的操作符,用于计算类型或变量在内存中占用的字节数。sizeof 可以用来计算一个数据类型的大小,也可以计算一个变量的大小,用法:sizeof(变量名或类型) C99标准为sizeof何strlen()添加了%zd转换说明 2.常量和C预处理器2.1 预处理器定义常量方法:#define 常量名 常量值 用大写符号表示常量是惯例,常量可以是数值、字符和字符串 2.2...
C语言02-数据类型和C
1.基本数据类型1.1整数1.1.1 int类型有符号整型,int的值是整数,注意int的取值范围(ISO C规定最小为-32768~32767) 声明:int 变量名; 打印十进制用转换说明%d 1.1.2 其他整数类型 short int 类型:节省空间 long int 或long:适用于较大数值,long是有符号类型 long long int或long long :是有符号类型,至少占64位 unsigned int或unsigned:只用于非负值 在 C90 标准中,添加了unsigned long int或unsigned long和unsigned int 或unsigned short 类型。C99标准又添加了unsigned long long int或unsigned long long。 在任何有符号类型前面添加关键字signed,可强调使用有符号类型的意图。例如,short、short int、signed short、signed short int 都表示同一种类型。 1.1.3...