IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言易错知识点总结 -> 正文阅读

[C++知识库]C语言易错知识点总结

1.c语言中%d, %o, %f, %e, %x的意义

  • %d整型输出,
    • %ld长整型输出
  • %o以八进制数形式输出整数
  • %x以十六进制数形式输出整数
  • %f用来输出实数,以小数形式输出
  • %e以指数形式输出实数

2.C语言中的八进制

  • 在写代码的时候,八进制数字前面必须加上0
  • printf函数输出八进制的时候,前面是没有0的
  • 转义字符反斜线后的八进制数字前面不用加0
    • eg: ‘\101’ 代表字符 代表字符 ‘A’
    • 转义字符多用于printf中,scanf中不常用

3.赋值运算符=

a = b;//将b的值赋给a
a = b = c;//先将c的值赋给b, 再将b的值赋给a
//等价于下面式子
a = (b = c);

//错误写法
a = b + c = 1;
//不能给b+c赋值为1,因为这样变量b和变量c的值都不知道

4.关于字符变量

#include<stdio.h>
void main(){
    char ch;
    scanf("%3c", &ch);
    printf("%c", ch);
    //在这里虽然scanf函数中,%3c限制了字符的长度为3位,
    //但是字符输入只有一个字符,故最后结果没影响
    //比如:输入 abc
    //      输出 a
}

5.c语言中的输入输出

4.1 字符的输入输出

字符输出函数putchar()

char ch = 'a';
putchar(ch);
//其中ch只能是字符变量或者字符常量,每调用一次ch,就向显示器输出一个字符

4.2 字符串的输入输出

getchar() getch() getche()

getchar()函数丛键盘上读入一个字符,并显示该字符。
注意: 这个函数括号中没有参数,该函数的输入一直到回车才结束,
回车前的所有字符都会显示在屏幕上,但是只有第一个字符作为函数的返回值。

4.3 字符串输入/输出

gets()函数

  • 空格不会停止字符串的读入,知道遇到了enter键
  • gets(字符串变量名);

puts()函数

  • puts(xxx);
  • 这里xxx可以是:字符串数常量,字符指针或字符数组名。
#include <stdio.h>
void main(){
    char str[80];
    gets(str);
    puts(str);
}

4.4 格式的输出printf()

格式符格式说明
d或i以带符号的十进制整型进行输出(正数省略符号)
o以八进制的无符号整数进行输出(输出的结果没有前导0)
x或X以16进制无符号帧数形式输出整数(不输出前导符号0x)
u以无符号十进制整数形式输出整数
c以字符形式输出,输出一个字符
s以字符串形式输出,输出的字符至结尾符’\0’为止
f以小数形式输出实数,默认输出6位小数
#include <stdio.h>
void mian()
{
    int x = 28;
    unsigned y;
    long z;
    float sum;
    y = 456;z = 23432; sum = 255.4;
    printf("sum=%f, %8.1f");
    //%8.1f中,8指的是数据的宽度,若本身宽度小于8,则用空格代替
    //.1代表数据的精度,1就是保留小数点后一位
}

格式输入函数scnaf()

  • 输入函数的返回值为输入数据的个数

6.多路分支switch语句

switch(表达式)
{
    case 常量1: 语句1;
    case 常量2: 语句2;
    ...
       
    case 常量: 语句n;
        default :语句n+1;
}

语义:

  • 首先计算swithc后圆弧内表达式的值,然后逐个与case后面的常量进行比较。
  • 当与某个case后的常量值相等时,则执行该case后的语句。
  • 然后顺序执行后面的语句。
  • default后面的语句无论啥情况都会执行。

7.二维数组的初始化/定义

  • 像一维数组那样用逗号,挨着赋值,按照存储顺序一次给前面的各个元素赋值
int b[2][3] = {1, 2, 3, 4, 5};
//方括号里的2,3代表这个二维数组有两行三列,共6个元素
//这个二维列表本来应该有6个元素,所以,5后面的1个元素都默认为0
  • 在初值列表中,将每行元素的初值用花括号括起来成为一组,按行分段赋初值。
int b[2][3] = {{1, 2, 3}, {4, 5, 6}};
  • 也可以对部分元素赋值
int b[2][3] = {{1, 2}, {3}};
/*相当于
 *1 2 0
 *3 0 0
 */

int b[2][3] = {1, 2, 3};
/*1 2 3
 *0 0 0
 */

8.局部变量全局变量

  • 主函数(main()函数)中的变量也属于局部变量,其作用范围仅限于主函数内,所有其他被调用的函数均不能使用
  • 编译时,系统不会为局部变量分配内存,而是在程序运行过程中,当局部变量所在函数被调用时,编译系统才会根据需要临时分配内存。函数调用结束时,内存空间释放。
  • 全局变量
    • 所有函数外定义,所有函数(包括main函数) 外定义的变量即为全局变量。
    • 全局变量放在静态存储区中
    • 作用域是丛定义位置到本源文件结束。
    • 全局变量若不进行初始化,系统将会为其自动赋值为0,字符型赋值字符'\0'
    • 在同一源文件中,全局变量和局部变量同名,在局部变量的作用域内,全局变量不起作用。

9.数据类型存储类型

10.静态存储方式动态存储方式

变量生存区:从变量分配从初空间到释放空间的全部时间
内存中供用户使用的存储空间:

  • 程序区:存放程序代码
  • 动态存储区:存放数据
    • 编译时就分配空间
    • 在整个程序运行期间,该变量一直占有固定的存储空间,程序结束后,这部分空间才释放
    • 生存周期:整个程序
    • 哪些变量放在静态存储区?静态局部变量,全局变量。
  • 静态存储区域: 存放数据
    • 编译时不分配空间,只有当变量所在函数被调用时,编译系统才临时为该变量分配一段内存单元。
    • 函数调用结束,所占空间被释放
    • 生存周期:仅在函数调用期间。

11.静态局部变量

  • 静态局部变量调用时,不会重新赋值,而是使用上次函数调用结束时保留下来的值。
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:20:07  更:2022-03-22 20:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:10:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码