首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C 语言知识点总结

*; 在函数中改变一个外部变量,需要变量地址; 若是数据,需要指向数据指针存储数据地址; 若是指针,需要指向指针指针存用户指针地址; 数组与指针 p[i]等价于*(p+i),&p[i]等价于...,size:重新分配字节数 内存分区 C/C++中,内存分为:堆、栈、自由存储区、全局/静态存储区、常量存储区; 堆:由 new 分配内存块,一般对应一个 delete,若没用释放,则程序结束后操作系统自动回收...; 栈:编译器需要时候分配,不需要时自动清楚变量存储区,通常是局部变量、函数参数等; 自由存储区:由 malloc 等分配内存块,必须用 free 释放; 全局存储区:全局变量和静态变量存储区域...0’; gets 和 scanf gets 遇到换行符表示结束,而 scanf 遇到空格、制表符、换行则表示结束; Unicode 字符问题 char 字符串可显示汉字,但字符不可以,字符连在一起用%c%...c 可以输出一个汉字; 结构体 结构体引用方式:结构体数组名[下标].成员名; 结构体指针变量引用成员形式:(*结构体指针名).成员名、结构体指针名->成员名、结构体变量名.成员名; 结构体字节对齐机制

57740
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    c语言面试知识点总结_c语言电话面试题

    一、C语言面试 C语言面试题大汇总之华为面试题 二、链表 1、static和extern: 1). 在函数体,一个被声明为静态变量在这一函数被调用过程中维持其值不变。 2)....C++中static 在C++中static还具有其它功能,如果在C++中对类中某个函数用static进行修饰,则表示该函数属于一个类而不是属于此类任何特定对象;如果对类中某个变量进行static...C语言编译过程: C语言编译过程分成四个步骤: 1,由.c文件到.i文件,这个过程叫预处理 2,由.i文件到.s文件,这个过程叫编译 3,由.s文件到.o文件,这个过程叫汇编 4,由.o文件到可执行文件...Typedef 在C语言中频繁用以声明一个已经存在数据类型同义字 define只是简单字符串替换,没有类型检查。而const有对应数据类型,是要进行判断,可以避免一些低级错误。...不调用C++/C 字符串库函数,请编写函数 strcpy。

    86630

    总结嵌入式C语言知识点

    学好C语言吧!今天就来推荐一篇大佬写嵌入式C语言知识点总结。...C语言关键字 C语言关键字按照功能分为: 数据类型(常用char, short, int, long, unsigned, float, double) 运算和表达式( =, +, -,...C语言只规定了每种基本数据类型最小取值范围,因此在不同芯片平台上相同类型可能占用不同长度存储空间,这就需要在代码实现时考虑后续移植兼容性,而C语言提供typedef就是用于处理这种情况关键字,...C语言对齐机制,是有效且快捷方式。...预处理机制 C语言提供了丰富预处理机制,方便了跨平台代码实现,此外C语言通过宏机制实现数据和代码块替换,字符串格式化,代码段切换,对于工程应用具有重要意义,下面按照功能需求,描述在C语言运用中常用预处理机制

    42310

    C++区别于其他语言知识点总结

    C++是博主一门限选课,所使用课本为谭浩强老师C++面向对象程序设计》(第二版),这本书内容全面,简单易懂,也强烈推荐给大家(尤其是初学者)。...(正文字体采用“等线”,最新版win10可以达到最佳显示效果) 1.使用const定义常量 //C语言定义常量 #define PI 3.1415926**重点内容** //C++定义常量 const.../C#引用指的是地址,相当于C/C++指针,二者区别相当大。...因此与C语言不同,即使main()函数为空,只要编译文件里有构造函数且构造函数有输出,即使main()函数为空程序也有输出。...(3,4), c2(5, -10), c3; c3 = c1 + c2; //编译器将其解释为 c1.operator+(c2) } //友元重载比一般重载要好,因为友元函数有访问私有变量权限

    915100

    C语言几个容易混淆知识点总结

    (2)int  (*p)[10];  数组指针,声明一个指向10个整型数组指针。                指针数组是元素为指针数组,而数组指针是元素为指向数组指针。...3、用字符串常量初始化指针与数组 (1)char *p= “gooseberry”; 字符指针,初始化指针时所创建字符串常量被定义为只读,如果试图通过指针修改这个字符串值,程序会出现未定义行为。...(2) char a[] = “gooseberry”;字符数组,与指针相反,由字符串常量初始化数组是可以修改。...比如下面的语句: strncpy(a,"black",5);将数组值改为blackberry。 4、常量指针与指针常量 (1)常量指针:指向常量指针,指针所指向地址内容是不可被修改。   ...(2)指针常量:不可修改地址指针,但是可以对其指向地址内容进行修改。还有,指针常量在定义时必须同时赋值,指针常量也不能释放。

    78220

    初识C语言C语言知识点

    C语言三大结构:顺序结构,选择结构,循环结构 一.数据类型 1.字符 char   (字符数据类型) 2.整型 short    (短整型) int        (整型) long    (长整型)...long long (更长整型) 3.浮点数(小数) float   (单精度浮点数) double   (双精度浮点数) 注:C语言标准 sizeof(long long)>=sizeof(long...如: \x30 0 字符:计算机能够处理是二进制,数据在存储时候存储也是二进制 六.操作符 1.算数操作符 +  -   *   /   % 2.移位操作符 > 3.位操作符 &   ...return   short  signed sizeof   static struct  switch  typedef union  unsigned   void  volatile  while 注:C语言提供了丰富关键字...,这些关键字都是语言本身预先设定好,用户自己是不能创造关键字

    9910

    C++ 类知识点总结

    (2)类中成员限定访问符:public与private是可以多次出现,而且不限定先后顺序。 (3)C++继承和发展了C语言结构体类型,该类型在C语言知识数据合集,在C++中加入了函数。...所以这样扩展让结构体类型具有了与类相似的功能(数据和函数),C++允许用struct去声明一个类,但是与class相比,前者不用成员限定访问符声明时都默认为公用。...Bubble::show() //加类名 { cout<<num<<endl<<result<<endl; } (5)在类体内定义函数时,如果该函数不包含循环等控制结构(也就是说该函数比较短小),那么C+...**所以在对对象成员函数存储时,不是为每一个对象函数都开辟一段内存空间,而是开辟一个共同存储空间去存放不同对象中相同函数代码。...所以,这样存储方式造成了:一个对象所占用存储空间其实是该对象中数据成员所占用空间,不包括函数。

    25220

    C - 指针C语言指针总结

    C语言指针总结 1. 变量 不同类型变量在内存中占据不同字节空间。 内存中存储数据最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制数。...变量值:存储在变量中数据,叫做变量值。 变量地址:一个变量是由一个或者多个字节组成,组成这个变量低字节地址,就是这个变量地址。...下面通过一张图可以更直观理解内存中地址 ? 内存中地址演示图 2. 指针 指针是C语言灵魂。指针变量占据8个字节。 变量在内存中存储。 变量值:存储在变量中数据,叫做变量值。...变量地址:组成这个变量低字节地址,就是这个变量地址。 取出变量地址,用&运算符 %p输出变量地址。 变量地址就叫做指针,我们可以使用一个指针变量来存储变量地址。...指针作为函数参数 如果函数参数是一个指针,那么就必须要为这个指针传递一个和指针类型相同普通变量地址,这个时候,在函数内部去访问参数指针变量时候,其实访问就是实参变量 指针作为函数参数

    4.2K81

    c语言 ‘‘数组’’ 知识点

    一维数组创建和初始化 数组创建 数组是一堆相同类型元素集合 数组长度要求是常数值 但是在C99标准之前 数组大小是必须是常量或者是常量表达式 但在C99之后 数组大小可以是变量 是为了支持变长数组...求个数 总结,数组是有下标来访问,第一个下表是0 数组计算是可以通过计算得到 4.一维数组在内存中存储 这个地址是16进制 而且每个地址差四 二维函数创建和初始化 二位函数创建...而且二维使用就需要嵌套循环了 然后是他们字节还是查四 也是连续 数组越界 数组下标范围,是由范围限制 从0开始 到设置元素个数n-1,如果访问下标小于 0或者大于n-1 那么就是访问越界了...结果是 而且一维数组和二维数组都会越界 反正不要越界 数组作为函数参数 比如排序数组内数字 数组名可以认为是数组首元素地址 还有指针式 二维数组指的是 它所对应地址 直接增加了16 第一行数组大小...算出是行数 算出是列数 然后是 &arr 如果arr是二维数组 那么取得就是整个二维数组地址

    7510

    C++模板知识点总结

    不提供隐式类型转换,必须是严格匹配。 如果显式调用函数模板,则使用类型列表。 如果函数模板会产生更好匹配,使用函数模板。 当所传参数需要隐式类型转换时,优先调用普通函数。...---- 类模板用于实现类所需数据类型参数化。 类模板在表示支持多种数据结构显得特别重要,这些数据结构表示和算法不受所包含元素类型影响。...注意以下代码静态变量变化即可了解。 同意类模板虚拟类型T被实例化类型相同,静态变量是同一个。...(100); Ab(200); a.count = 888; cout << a.count << endl; cout << b.count << endl; Ac(...1.0); Ad(2.0); cout << c.count << endl; cout << d.count << endl; 静态成员数据也可以使用虚拟类型参数。

    22910

    C++ 知识点总结

    const 在不同位置时不同意义 指针类型前:声明一个指向常量指针,程序中不能通过指针来改变它所指向值,但指针本身值可以改变,即指针可以指向其他数据; "*"号和指针名之间,声明一个指针常量(常指针...),指针本身值不可改变,即不能指向其他数据,但指向数据值可以改变; 两个地方都加,声明指向常量指针常量,指针本身值不可改变,指向数据也不能通过指针改变; 函数指针 使用函数指针之前,必须先赋值...,使它指向一个函数入口地址,赋值语法格式为:函数指针名 = 函数名,其中函数名代表函数必须是一个已经定义过,和函数指针具有相同返回类型函数,指针调用函数格式:(*指针变量)(实参列表); 访问权限...,且不能被子类派生类访问; 公有继承 public:父类公有成员和保护成员作为子类成员时,仍保持原有状态,父类私有成员仍为私有; 保护继承 protected:父类公有成员和保护成员成为子类保护成员...,且只能被他派生类成员函数或友元访问,父类私有成员仍为私有; 派生类构造函数调用顺序: 调用基类构造函数,调用顺序按继承时说明顺序; 调用子对象类构造函数,调用顺序按在类中说明顺序; 派生类构造函数体中内容

    50430

    C语言函数知识点C语言学习笔记】

    函数:function 功能:含义是用来完成一定功能。 1个C语言程序是由1个或多个程序模块组成,每个程序模块作为一个源文件(.c),一个源文件是由1个或多个函数组成。...函数都是平行,相互独立,一个函数并不属于另一个函数。 从用户角度来看,函数可以分为:库函数(stido math string stdlib...)、用户自定义函数。...实际参数 实参 printf("sum=%d",sum);//调用函数 return 0; } int add(int a,int b){//形式参数 形参 定义函数 int c;...c=a+b; return c; } 函数调用时数据传递 对应有参函数,在定义函数时函数名后面的参数称为形式参数(形参),在调用函数时,函数名后面的参数称为实际参数(实参)。...调用过程: 在定义函数时形参变量,当没有出现函数调用时,形式参数不会占用内存空间。只发生函数调用时,函数形参才被分配内存空间。 将实参值单向传递给形参。

    45710

    C语言】数组总结

    我之前发扫雷和三子棋离不开数组信息储存,今天我来总结下我学数组这一章节内容。 1....⼀维数组创建和初始化 2.1 数组创建 ⼀维数组创建基本语法如下: type arr_name [常量值] ; 存放在数组值被称为数组元素,数组在创建时候可以指定数组大小和数组元素类型...• [] 中常量值是⽤来指定数组大小,这个数组大小是根据实际需求指定就行。 2.2 数组初始化 有时候,数组在创建时候,我们需要给定⼀些初始值,这种就称为初始化。...3.1 数组下标 int arr[ 10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }; 在C语言中数组访问提供了⼀个操作符 [] ,这个操作符叫...5. sizeof 计算数组元素个数 sizeof 中C语言是⼀个关键字,是可以计算类型或者变量大小,其实 sizeof 也可以计算数组 大小。

    7310

    C语言“函数”总结

    C语言中函数分类 函数分为库函数和自定义函数 C语言是结构化程序设计语言 一般有 -顺序结构 -选择结构 -循环结构 比如求和代码 中 定义了add函数 Add 执行 x+y=z 之后 返回 z结果...返回类型 + 名字 +(参数A,参数B) 可以没有 一个 或者两个参数 比如取大自定义函数 如果用void就可以不返回 特殊知识点 形参 与 实在参数 在下面的a和b是实参 X,y是形参 改x和y与...有 传值调用 和 传址调用 传值调用只能是返回值 或者 在自定义函数中操作出结果 但传址调用 可以 直接操纵外部变量 操纵实参 练习 打印100-200之间素数 新知识点 开平方数学库函数 sqrt...知识点 布尔类型 在C语言中 最开始就 char short int long longlong float double 是内置类型 在C语言最初设计中就有 但在C99中引入了布尔类型 也就是bool...(知识点再提 ,无符号整型 unsigned int 函数 用%u) %d是打印有符号整数 包含正负数 %u是打印无符号整数 再%u中没有负数 例子代码 我写 但顺序都不是想要 所以不可取 用递归法

    15710

    5.9 C语言循环总结

    01循环嵌套 1、一个循环体内又包含另一个完整循环结构,称为循环嵌套。内嵌循环体中还可以嵌套循环,这就是多层循环。...2、在while循环和do...while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应该在循环体中包含使循环趋于结束语句。...3、用while和do...while循环时,循环变量初始化操作应在while和do...while语句之前完成。...3、break和continue区别 (1)continue语句只结束本次循环,而不是终止整个循环执行。 (2)break语句是结束整个循环过程,不再判断执行循环条件是否成立。...C语言 | 由小到大输出两个数 更多案例可以go公众号:C语言入门到精通

    8903027
    领券