精华内容
下载资源
问答
  • C语言易错知识点总结

    2020-07-22 00:37:58
    本文主要对C语言易错知识点进行了总结。
  • C语言易错知识点

    2021-04-11 23:35:50
    内存四区 字节对齐 字节序 staitc变量 static函数 const变量、指针 常量指针 指针常量 sizeof strlen 结构体、联合体、枚举、位域 嵌套组合 ...宏和内联函数:各自使用场景、注意事项、 宏的作用范围?......

    目录

     

    内存四区 

    sizeof 和 strlen

    区别:


     

    内存四区 

    https://blog.csdn.net/bjca0907/article/details/116346658

     

    字节对齐

    字节序

    staitc变量   static函数

    const 变量、指针

    常量指针

    指针常量

    sizeof 和 strlen

    区别:

    1、本质

    sizeof:是运算符(关键字);是一个单目运算符,不是函数,执行时后面可以不带();

    strlen:是函数。执行时后面必须带();

    2、功能

    sizeof:计算操作对象占内存的字节数(遇到‘\0’不停止),计算结果包括结尾的’\0’;

    strlen:计算字符串的长度(遇到‘\0’就停止),计算结果不包括结尾的’\0’;

    3、计算时间

    sizeof:编译时计算。因为其本质是个操作符,需要在编译时计算,确定内存大小。

    strlen:运行时计算。因为其本质是个函数,函数在运行时被调用了才会执行。

    4、操作数(参数)类型

    sizeof:操作数可以是数据类型、变量、数组、指针、函数、表达式等;

    strlen:参数必须是字符串(即char *);

    1sizeof(数据类型)

    sizeof(int);

    sizeof(struct MyStruct;

    2sizeof(变量)

    sizeof(a);

    3sizeof(数组)

    Sizeof(array[]);

    4sizeof(函数)

    int func()

    sizeof(func());

    5sizeof(表达式)

    sizeof(10 + 21.5);

    结构体、联合体、枚举、位域   嵌套组合

    宏 和 内联函数: 各自使用场景、注意事项、  宏的作用范围?

    命名、注释

    运算符优先级

    数据类型范围: 数据强转(截断、扩充)

    常见数据结构和算法

    各种排序算法:时间、空间复杂度

    二叉树的前、中、后序遍历

     

     

    展开全文
  • c语言易错知识点总结 篇一c语言易错知识 C语言教学中学生容易出错的知识点解析 0引言 C语言是一种很灵活的语言在程序调试过程中常常会 遇到一些难解决的问题一般语法错误计算机能检测出来 而逻辑错误计算机则检测不...
  • 标题C语言易错知识点集合(一) 输入函数与输出函数

    C语言易错知识点集合之getchar()

    因为病毒太厉害了,电脑没带回家只能用手机写一篇不能用代码展示,望理解。

    getchar()
    函数原型:int getchar(void)//必须包含stdio.h头文件
    返回类型:int整型
    返回值:用户输入的ASCⅡ码,出错返回-1

    char x;
    x=getchar();
    printf(“x=%c”,x);

    • 打开控制台当在键盘上按下1回车后,x=1此时的1是一个字符char只占一个字节,不是整形int占四个字节。我们最后加上printf(“i=%d”,x)得到i=49(1的ASCII码=49),这里可以看出当两个数比较大小时应当注意两个数必须为同一类型。

    • 不仅仅这样getchar还有个问题,就是大家所关注的缓冲区问题,提到缓冲区不得不提下stdin流。还是上面的例子我们在最后加上g=getchar();printf(“g=%c”,g);按下1空格2回车再按回车最后结果x=1,g= ‘ ’(代替空格),是不是不符合我们想要的呢?因为当我们按下后,从键盘到缓冲区中的字符依次是1‘ ’2‘ ’,不要忘记空格也是一个字符,我们可以最后再加上printf(“i=%d”,g)得到i=32(空格ASCII码=32)所以要想x=1,g=2按下12空格,不过这样程序运行完后缓冲区任然有个’\n’回车符,不过在程序运行完毕从新运行时缓冲区会刷新的,但是有没有消除这个回车呢?

    • ①在进行单个字符赋值时只需要在每输入的字符后加上getchar(),这里的getchar并没有对任何变量进行赋值,只是从缓冲区中把’\n’取出来了。

    • ②在字符串赋值时最常用while((c=getchar())!=’\n’) //每个getchar()依次读入一个字符 。意思就是说,直到遇到回车符才结束循环,而getchar()函数就是等待输入(或缓冲区中的数据)直到按回车才结束,所以实现了整个字符串的输出。
      总结:以图的形式让大家更加直观的理解。
      在这里插入图片描述

    展开全文
  • 笔者今天又碰到了这样的问题,实在忍不住了。因为这些问题都是小的知识点,考虑到之前也遇到好多这种问题,于是决定每次遇到问题就记录下来,时刻提醒自己。
  • C语言易错知识点集合

    2020-08-26 22:25:21
    1.程序的执行总是从main函数开始,在main函数结束。主函数一定要用main表示 2.数据结构不能用来描述算法,自然语言,流程图,计算机编写的程序可以 3.预处理指令不一定非得在开头 ...6.分号是C语言的必要组成部分 ...

    1.程序的执行总是从main函数开始,在main函数结束。主函数一定要用main表示
    2.数据结构不能用来描述算法,自然语言,流程图,计算机编写的程序可以
    3.预处理指令不一定非得在开头
    “#include”实现文件包含的功能,不是每个C程序都必须具备。
    4.小写字母的ASCII码值相应的大写字母ASCII码值大32
    5.函数是C程序的基本单位
    6.分号是C语言的必要组成部分
    7.并不是C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
    8.变量定义时即分配内存,不管你是否使用
    9.break 语句只能用在循环体内和 switch 语句体
    10.常量可以赋值给变量
    11.C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,表达式3,……,表达式n其值为表达式n的值。
    12.标示符首字符必须为字母下划线不能为数字。
    13.定义字符时要用单引号****‘ ’,定义字符串时要用双引号“ ”
    错误示例: char a=‘mn’ 单引号里边只能有一个字符
    14.逻辑表达式不为0即为真

    展开全文
  • 1.结构体的计算//structBBB{//longa;//charc1;//charc2;//longb;//longc;//}*p;//sizeof(structBBB)=16;//intmain()//{//p=(structBBB*)0x100000;//printf("0x%x",p+0x1);//加整个结构体大小为0x10010//printf("0x.....

    1.结构体的计算//struct BBB{

    //long a;

    //char c1;

    //char c2;

    //long b;

    //long c;

    //}*p;//sizeof(struct BBB)=16;

    //int  main()

    //{

    //p = (struct BBB*)0x100000;

    //printf("0x%x", p + 0x1);//加整个结构体大小为0x10010

    //printf("  0x%x",(unsigned  long) p + 0x1);//整型加1,0x100001

    //printf("  0x%x", (unsigned long*)p + 0x1);//加sizeof(unsigned  long)*1,为0x100004

    //printf("  0x%x",(char *) p + 0x1);//加sizeof(char)*1,为0x100001

    //system("pause");

    //return 0;

    //}

    2.结构体中结构体,共用体中结构体的大小//union  AAA{

    //struct {

    //char  c1;

    //short sl;

    //char  c2;

    //}half;

    //short kk;

    //}number;

    //struct BBB{

    //char  ucFirst;

    //short us;

    //char  c2;

    //short uo;

    //}half;

    //struct tagCCC

    //{

    //struct

    //{

    //char   c1;

    //short sl;

    //char  c2;

    //}half;

    //long kk;

    //};//结构体是个整体按4对齐6+4=10,short和long中最大所占字节为4,4的整数倍为12

    //int main()

    //{

    //printf("%d %d %d\n", sizeof(union AAA), sizeof(struct BBB), sizeof(struct tagCCC));

    //system("pause");

    //return 0;

    //}

    执行结果:

    1字节对齐:4 6 8

    4字节对齐:6 8 12

    3.如果case语句中没有break,那么它之后的语句都会被执行。

    4.指针和const的声明:

    (1)指针所指对象是可读的

    const  int *p;

    int  const *p;

    (2)指针是可读的

    int  *const p;

    (3)指针和指针所指对象都是可读的

    const  int * const p;

    int  const *constp;

    5.动态开辟void  GetMemory(char *p,int len)

    {

    p=(char  *)malloc(len);

    }

    int main()

    {

    char  *p;

    GetMemory(p,10);

    strcpy(p,"bit");

    printf("%s",p);

    free(p);

    }

    上述代码有三处错误!!!

    a.此时调用函数p动态开辟和主函数p所指不是同一个地方,因为p只是临时拷贝,没传地址过去。

    b.strcpy,出现错误,此时p无指向。

    c.free时并未将其开辟(临时变量)的释放,且应在free后让指针指向空。

    正确代码为:void  GetMemory(char **p,int len)

    {

    *p=(char  *)malloc(len);

    }

    int main()

    {

    char  *p;

    GetMemory(&p,10);

    strcpy(p,"bit");

    printf("%s",p);

    free(p);

    p=NULL;

    }

    展开全文
  • 位运算 运用 按位与常用于... lazy_LYF 发布了10 篇原创文章 · 获赞 0 · 访问量 418 私信 关注 标签:fp,文件,易错,运算,int,C语言,位域,指针,字节 来源: https://blog.csdn.net/lazy_LYF/article/details/104570583
  • IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)转自http://blog.csdn.net/zzfsuiye/article/details/8251060 概述: 在iOS6之前的版本中,通常使用shouldAutorotateToInte ...Android中TextView中的文字设置...
  • 在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的C语言知识点,是一些小细节。但是正是因为很基础,又都是小细节,所以我们往往容易忽视它们。结果有时候我们会花很长的时间纠结一个...
  • 原标题:大学C语言考试易错知识点总结现在不少大学都把C语言作为一门必学的编程语言。C语言考试呢,并不能决定你的实践能力怎么样,他考的很多点,我们不知道,也可以在写代码时避免,我们举个最简单的例子,运算符...
  • 在这里为大家准备了c语言易错点,以下仅供参考!C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试...
  • C语言中位运算符和逻辑运算符所表示的含义 符号 含义 栗子 % 取模运算 5 % 2 = 1 / 取余运算 5 / 2 = 2 | 按位或运算 二进制1 | 1 = 11 | 0 = 10 | 1 = 10 | 0 = 0 & 按位与运算 二进制0 & 0 ...
  • c语言易错知识点1

    2017-11-23 15:55:51
    一、进制的转换 1、将91换为2进制时,应将除以2所余的数从下往上写:91=...二、碎知识点  1、C语言关键字也称C语言保留字 2、C语言中可以没有输入值,没有返回值 3、/* …… */ 与/ …… / 都是单行注释 ,
  • C语言 易错易忘知识点 1.const int a = 10; //常量指针:常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。 const int * ...
  • C语言易错点总结

    2019-11-26 12:43:40
    C语言易错点总结 1.sizeof是关键字而非函数。 2.定义变量时,不能同时对多个变量连续赋初始值。 eg:int m=n=1;//错误 3.scanf语句: "%c"将读入空白符," %c"能忽略空白符。 "%s"遇到空白符读入结束。 ps...
  • 大学C语言考试易错知识点总结

    千次阅读 多人点赞 2019-12-28 23:02:17
    文章目录运算符相关自增(减)前后缀逻辑运算符的短路问题赋值运算符的返回值问题运算符优先级的问题函数相关函数声明问题mian函数参数问题变量相关用字符...现在不少大学都把C语言作为一门必学的编程语言。而每到这...
  • 二级C语言部分知识点以及易错题目.docx
  • 1.结构体的计算//structBBB{//longa;//charc1;//charc2;//longb;//longc;//}*p;//sizeof(structBBB)=16;//intmain()//{//p=(structBBB*)0x100000;//printf("0x%x",p+0x1);//加整个结构体大小为0x10010//printf("0x.....
  • 1、C语言源程序文件经过C编译程序编译连接之后生产一个后缀为“.exe”的文件   2、以下选项中不正确的整型常量是() A、12L B、-10 C、1,900 D、123U   3、表达式_____不符合C语言语法,若变量以正确定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 780
精华内容 312
关键字:

c语言易错知识点

c语言 订阅