精华内容
下载资源
问答
  • c语言指针易错

    2021-09-15 17:32:03
    这俩天为了学习数据结构,把c语言重新看了一下指针,我发现自己以前没有注意到的一个细节 在指针定义时是一个说明符,如p 但在使用的时候完全不一样了 那是指向运算符也叫间接访问符 *p=A;A=12; p只是一个地址 *p是...

    这俩天为了学习数据结构,把c语言重新看了一下指针,我发现自己以前没有注意到的一个细节
    在指针定义时是一个说明符,如p
    但在使用的时候完全不一样了
    那是指向运算符也叫间接访问符
    *p=A;A=12;
    p只是一个地址
    *p是指向A的内容,*p相当于A;
    请看一下三个语句
    scanf("%d",&a);
    scanf("%d",&*p);
    scanf("%d",p);
    &a和p是相等的,和&*p也是相等的

    展开全文
  • C语言指针 易错知识

    2017-11-29 15:08:14
    *ptr是一个字符,sptr是一个指向字符的指针,代码试图将一个字符指针赋值给一个字符,很显然会产生类型冲突。 (2)char *sptr="abc",*ptr; ptr=sptr;正确。 (3)char *sptr="abc",*ptr; *ptr=*sptr;可能产生运行时...

    (1)

     char *sptr="abc",*ptr;
     *ptr=sptr;

    编译时错误。
    原因:
    *ptr是一个字符,sptr是一个指向字符的指针,代码试图将一个字符指针赋值给一个字符,很显然会产生类型冲突。
    (2)

    char *sptr="abc",*ptr;
    ptr=sptr;

    正确。
    (3)

    char *sptr="abc",*ptr;
    *ptr=*sptr;

    可能产生运行时错误。
    原因:
    程序没有为ptr分配存储空间,当解引用ptr时,无法确定它的指向。
    (4)

    int *iptr=(int *)10;
    *iptr=11;

    可能产生运行时错误。
    原因:
    将一个固定的地址赋值给一个整型指针是很危险的。当解引用iptr时,我们会把11写到地址为10的iptr中,这种操作很可能是不合法的。
    (5)

    int *iptr=10;
    *iptr=11;

    可能产生运行时错误或警告。
    原因:
    此代码尝试将一个整数赋值给一个整型指针,很多时候这种操作并不合法或会造成类型冲突。
    (6)

    int *iptr=(int *)10;
    iptr=NULL;

    正确。
    原因:
    虽然程序一开始做了一个将固定地址赋值给整型指针iptr的危险操作,但它立刻将此指针设为NULL,这是正确的操作。

    展开全文
  • C语言指针练习题及答案一、选择题1. 变量的指针,其含义是指该变量的____.a)值 b)地址c)名 d)一个标志2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ _.a)a,point,*&a b)&*a,&...

    C语言指针练习题及答案

    一、选择题

    1. 变量的指针,其含义是指该变量的____.

    a)值 b)地址

    c)名 d)一个标志

    2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ _.

    a)a,point,*&a b)&*a,&a,*point

    c)*&point,*point,&a d)&a,&*point ,point

    3.若有说明;int *p,m=5,n;以下正确的程序段的是________.

    a)p=&n; b)p=&n;

    scanf("%d",&p); scanf("%d",*p);

    c)scanf("%d",&n); d)p=&n;

    *p=n; *p=m;

    4. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是__ _____.

    main()

    {

    int *p,*q,a,b;

    p=&a;

    printf(“input a:”);

    scanf(“%d”,*p);

    ……

    }

    a)*p表示的是指针变量p的地址

    b)*p表示的是变量a的值,而不是变量a的地址

    c)*p表示的是指针变量p的值

    d)*p只能用来说明p是一个指针变量

    5. 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是______.

    void print_value(int *x)

    { printf(“%d\n”,++*x);}

    a)23 b)24 c)25

    6.若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是

    A) *p=&a; scanf("%ld",p);

    B) p=(long *)malloc(8); scanf("%ld",p);

    C) scanf("%ld",p=&a);

    D) scanf("%ld",&a);

    7.有以下程序

    #include

    main()

    { int m=1,n=2,*p=&m,*q=&n,*r;

    r=p;p=q;q=r;

    printf("%d,%d,%d,%d\n",m,n,*p,*q);

    }程序运行后的输出结果是

    A)1,2,1,2 B)1,2,2,1

    C)2,1,2,1 D)2,1,1,2

    8. 有以下程序

    main()

    { int a=1, b=3, c=5;

    int *p1=&a, *p2=&b, *p=&c;

    *p =*p1*(*p2);

    printf("%d\n",c);

    }执行后的输出结果是

    A)1B)2C)3D)4

    9. 有以下程序

    main()

    { int a,k=4,m=4,*p1=&k,*p2=&m;

    a=p1==&m;

    printf("%d\n",a);

    }程序运行后的输出结果是( )

    A)4B)1 C)0 D)运行时出错,无定值

    10. 在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是( )

    A)p向高地址移了一个字节B)p向高地址移了一个存储单元

    C)p向高地址移了两个字节D)p与a+1等价

    11.有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], b; b=p[5]; b中的值是( ) A)5 B)6 C)8 D)9

    12.若有以下定义,则对a数组元素的正确引用是_________.

    int a[5],*p=a;

    a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)

    13.若有以下定义,则p+5表示_______.

    int a[10],*p=a;

    a)元素a[5]的地址 b)元素a[5]的值

    c)元素a[6]的地址 d)元素a[6]的值

    14.设已有定义: int a[10]={15,12,7,31,47,20,16,28,13,19},*p; 下列语句中正确的是( )

    A) for(p=a;a

    B) for(p=a;p

    C) for(p=a,a=a+10;p

    D) for(p

    展开全文
  • c语言指针易错点

    2016-10-19 19:48:50
    1.今天在做项目的时候被c语言指针坑了很久。现在总结一下: **:划重点,c语言中没有引用,所有的参数传递都是值传递。 这一点在函数传出值(改变函数外的变量)的时候特别明显,想传出一个值就要传入一个指针(它...

    1.今天在做项目的时候被c语言的指针坑了很久。现在总结一下:
    **:划重点,c语言中没有引用,所有的参数传递都是值传递。
    这一点在函数传出值(改变函数外的变量)的时候特别明显,想传出一个值就要传入一个指针(它的地址),然后通过这个它的地址来改变它的值。

    void a;  //传出一个值
    func(&a);
    void func(void * ptr){
        *ptr=value;
    }
    
    void * a;  // 传出一个值(指针类型)
    func(&a);
    void func(void** ptr){
        *ptr=value;
    }
    展开全文
  • 原标题:大学C语言考试易错知识总结现在不少大学都把C语言作为一门必学的编程语言。C语言考试呢,并不能决定你的实践能力怎么样,他考的很多,我们不知道,也可以在写代码时避免,我们举个最简单的例子,运算符...
  • 3、其他的一些注意: 1) 指针变量可以进行加减运算,例如p++、p+i、p-=i。指针变量的加减运算并不是简单的加上或减去一个整数,而是跟指针指向的数据类型有关。 2) 给指针变量赋值时,要将一份数据的地址赋给它,...
  • C语言指针易错点

    2016-07-13 00:07:00
    1.内存泄漏:申请的堆内存没有释放。 2.内存污染:前面非法操作使用内存(没有报错),后面写着写着就出错。如下代码: 当结构体中只有划线部分...图中画蓝线的部分:应该判断的是指针变量的值,而不是指针指...
  • ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.指针 定义和作用 ...指针易错点 // 以下代码均为不规范写法 // 不建议的写法,int *p 只能指向int类型的数据 int *p; doub
  • 文章目录一、指针易错点二、二级指针做函数参数的输入特性三、二级指针做函数参数的输出特性 一、指针易错点 1.越界问题 当我们写出下列代码时,编译器便自动给我们报错。原因是buf只有3个字符,但"abc"其中包含’\0...
  • 位运算 运用 按位与常用于... lazy_LYF 发布了10 篇原创文章 · 获赞 0 · 访问量 418 私信 关注 标签:fp,文件,易错,运算,int,C语言,位域,指针,字节 来源: https://blog.csdn.net/lazy_LYF/article/details/104570583
  • C语言中用一个变量来存放指针,这种变量称为指针变量。指针变量的值就是某内存单元的地址或指针。 变量的指针就是变量的地址,存放变量地址的变量就是指针变量。eg:i_pointer代表指针变量,而*i_pointer是i_pointer...
  • C语言基础易错点总结

    2021-09-04 10:14:54
    文章目录系列文章目录前言一、C语言是什么?二、C的部分基础语法数据类型变量和常量变量的作用域和生命周期转义字符关键字static总结 前言 引用左耳朵耗子(陈皓)的文章里的一句话:现在的这个社会更多地去关注...
  • 玩儿转C语言指针易错点、多级指针和数组相关)
  • 原标题:C/C++入门易错点及常用小技巧1. int型:绝对值在10^9范围内的整数都可以定义成int型。2.long long型:如果long long型赋值大于2^31 -1的初值,则需要在初值后面加上LL,否则会编译错误。3.float、double输入...
  • C语言易错点

    千次阅读 2018-04-02 21:47:28
    重新将C语言的知识看了一遍,把自己遗忘以及容易出错的知识记录下来。各个知识之间没有什么联系。   定义变量时,我们使用了诸如"a" "abc" "mn12"这样的名字,它们都是...
  • C语言编程易错点总结

    2020-10-17 11:29:38
    C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。它是目前最著名,最流行的语言,效率高、功能强、用法灵活。 在学习编程语言的过程中,最怕最难的就是找BUG,而找BUG又是必不可少的能力,...
  • C语言const易错点

    2018-03-27 13:43:01
    表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a;含义相同。int * const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后...
  • 全局变量 在所有函数外部定义的变量 范围:从定义位置开始到程序结束 局部变量 在一个函数内部定义的变量或者函数的形参,都...指针变量占4个字节,64位占8个字节 一个变量的地址是用该变量的首地址来表示 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,644
精华内容 657
关键字:

c语言指针易错点

c语言 订阅