c语言
文章平均质量分 70
基础学习
莫忘、莫念
自律即自由
展开
-
关于函数栈帧
一.下面的写法定义了一个引用,并将其初始化为引用某个变量 类型名&引用名=某变量名; int n=4; int & r=n; r引用了n,并且r的类型是int & 某个变量的引用,等价于这个变量,相当于该变量的一个别名 代码示例: #include <iostream> using namespace std; int main() { int n=7; int & r=n; r=4; cout<.原创 2022-03-21 09:01:19 · 155 阅读 · 0 评论 -
程序环境和预处理
define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在stuff中参数列表的左括号必须与name紧邻。如果两者之间有任何空白存在,参数列表就会被解释为stuff的一部分(X):(Y))//宏的形式int Max(int x, int y)//函数的形式return x>y?x:y;原创 2023-04-03 23:14:29 · 260 阅读 · 0 评论 -
字符串操作(strlen/strcpy/strcat/strcmp/strncpy/strncat/strncmp/strstr/strtok/strerror)
字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )参数指向的字符串必须要以 '\0' 结束源字符串必须以 '\0' 结束。会将源字符串中的 '\0' 拷贝到目标空间。目标空间必须足够大,以确保能存放源字符串。目标空间必须可变源字符串必须以 '\0' 结束。目标空间必须有足够的大,能容纳下源字符串的内容。目标空间必须可修改第一个字符串大于第二个字符串,则返回大于0的数字第一个字符串等于第二个字符串,则返回0。原创 2023-03-13 00:42:35 · 622 阅读 · 0 评论 -
内存系列函数
int main()//打开文件return 1;////写文件---输出操作//随机读//a//b//e//关闭文件fclose(pf);pf = NULL;return 0;//随机读//a//1//b//2fclose(pf);pf = NULL;return 0;//作用是让文件指针的位置回到文件的起始位置。原创 2023-03-12 19:20:57 · 261 阅读 · 0 评论 -
文件(完整)
/读取错误或者读到文件末尾返回EOF//读取正确返回字符的assic码值int main()//打开文件return 1;//读文件---读一行= NULL)}*///关闭文件fclose(pf);pf = NULL;return 0;struct Stu//姓名int age;//年龄double d;//分数int main()struct Stu s = { "张三",19,78.6 };//打开文件return 1;//写文件。原创 2023-02-26 22:29:10 · 734 阅读 · 0 评论 -
数据的存储
char字符数据类型short短整型int整型long长整型long long更长的整型float单精度浮点数double双精度浮点数大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。原创 2023-02-20 23:20:39 · 212 阅读 · 0 评论 -
static+#define 定义常量和宏+分支循环语句+关键字
switch(整型表达式)语句项;for(表达式1;表达式2;表达式3)循环语句;表达式1为初始化部分,用于初始化循环变量的表达式2为条件判断部分,用于判断循环时候终止表达式3为调整部分,用于循环条件的调整。原创 2022-11-04 17:42:45 · 661 阅读 · 0 评论 -
运算符详解
按位与| 按位或^ 按位异或注:他们的操作数必须是整数!逻辑反操作- 负值+ 正值& 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反-- 前置、后置--++ 前置、后置++* 间接访问操作符(解引用操作符)(类型) 强制类型转换&& 逻辑与|| 逻辑或。原创 2023-02-15 23:44:03 · 339 阅读 · 0 评论 -
结构体+枚举+联合体+位段
原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。,如果把一个结构体变量的起始地址存放在一个指针变量中,那么,这个指针变量就指向该结构体变量。不是所有的硬件平台都能访问任意地址上的任意数据的;结构体指针就是指向结构体变量的指针,表示的是这个结构体变量在内存中的。(六)结构体变量的定义和初始化。定类型的数据,否则抛出硬件异常。总体来说:结构体的内存对齐是拿。(一)结构的基础知识。(七)结构体内存对齐。(一)枚举类型的定义。(一)联合类型的定义。(三)联合大小的计算。原创 2023-02-04 21:25:34 · 3396 阅读 · 0 评论 -
动态内存分配
(二)用memset和malloc 实现calloc一样的功能。(一)一个c/c++编译的程序占用的内存分为以下几个部分。(一)realloc在调整内存空间的是存在两种情况。对每个从malloc返回的指针都需要进行检查。静态区(全局区)(static)(二)将已经释放的值赋值NULL。(一)free释放内存前后。(四)常见的动态内存错误。内存起始位置(新指针)指针仍然指向这块区域。原创 2023-01-29 22:48:43 · 2685 阅读 · 0 评论 -
指针(基础)
C/C++会把常量字符串存储到单独的一个内存区域,当几个指针指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块(二)&数组名VS数组名int main()return 0;arr是数组名,数组名表示数组首元素的地址&arr 表示的是数组的地址,而不是数组首元素的地址。本例中 &arr 的类型是: int(*)[10] ,是一种数组指针类型数组的地址+1,跳过整个数组的大小,所以 &arr+1 相对于 &arr 的差值是40。原创 2023-01-28 21:20:33 · 1143 阅读 · 0 评论 -
VS中scanf报错+extern关键字+常量+转义字符
目录一、解决VS中scanf报错二、extern关键字三、常量(一)C语言中的常量分为以下以下几种1. 字面常量2. const 修饰的常变量3. #define 定义的标识符常量4. 枚举常量四、转义字符(一)\?(二)\'(三)\"(四)\\(五)\ddd(六)\xdd 二、extern关键字 extern用于声明外部符号 2. const 修饰的常变量3. #define 定义的标识符常量4. 枚举常量 注:枚举常量的默认是从0开始原创 2022-04-02 22:11:08 · 530 阅读 · 0 评论 -
移位运算符(详细介绍)
移位运算符原创 2022-01-15 17:30:42 · 5903 阅读 · 3 评论 -
关于*p=x,*p=&x
一.数组#include<iostream>using namespace std;int main(){ int x[10]={11,12,13,14,15,16,17,18}; int *p=x; cout<<p<<" "<<&x[0]<<" "<<x<<endl; //输出3个0x70fdeo cout<<*p<<" "<<x[0];//输出11 1.原创 2022-04-05 17:10:56 · 1582 阅读 · 0 评论 -
类型别名(type alias)typedef
类型别名是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变的简单明了,易于理解和使用一. 使用关键字 typedef 可以为类型起一个新的别名。typedef 的用法一般为 typedef oldName newName;oldName 是类型原来的名字,newName 是类型新的名字typedef int mmm;//int和mmm是同义词int a等效于mmm a二.typedef与数组typedef char m1[20]m1是类...原创 2022-04-05 16:21:48 · 897 阅读 · 0 评论 -
定义字符串
一.什么是字符串 所谓字符串本质上就是以'\0'作为结尾的特殊字符数组二.定义字符串的具体格式(1)char 字符串名称[字符串长度] = {字符串所含元素};注意点:如果字符串所含元素中我们没有加上'\0',那么字符串长度应该就为字符串实际长度+1;因为如果不使字符串长度等于字符串实际长度+1,它就仅仅是一个字符数组,而不是我们所需要的字符串 例如: char name[6] = {'T', 'o', 'm', 'H', 'e'};(2)char 字符串名称[]...原创 2022-04-04 16:38:52 · 13842 阅读 · 0 评论 -
关于void的总结
一.void 在英文中作为名词的解释为 "空虚、空间、空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针"。 void * fun( ) ; //声明一个返回值是任意类型的指针 的函数fun() void vfun( ) ; //声明一个没有返回值 的函数vfun()二.对于void是无类型(不确定类型),无类型可以包含有类型关于void函数 1.没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非得...原创 2022-04-04 15:32:47 · 2735 阅读 · 0 评论 -
数组形参的学习
一. 1.数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是: (1)不允许拷贝数组(2)使用数组时将其转换成指针 2.因不能拷贝数组,所以我们无法以值传递的方式使用数组参数(因为数组会被转换成指针,所有当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针)二.尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式void print(const int*)void print(const int [])...原创 2022-04-03 21:30:38 · 366 阅读 · 0 评论 -
标识符总结
一.c++的标识符由字母,数字和下划线组成,其中必须以字母或下划线开头。二.标识符的特点:标识符的长度没有限制,但是对大小写字母敏感标识符分为关键字、预定义标识符、用户标识符常见的关键字:break,case,char,class,const,default,delete,do,double,else,enum,false,float,for,if,int,long,new,private,protected,public,return,signed,sizeof,static,..原创 2022-04-03 16:54:36 · 3135 阅读 · 0 评论