C语言错题集(指针2020/12/8)

C语言错题集(指针2020/12/8)

1、关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。(F)

指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数),例如对于int类型的指针p和p1. p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。 指针变量的自加和自减实际上是与整数1的加减运算。

2、假设有定义如下: int array[10]; 则该语句定义了一个数组array。其中array的类型是整型指针(即: int *)。(F)

array是指针,指向int array[0]的地址。

3、变量定义:int **pp;中,定义了整型变量 **pp。(F)

定义了指针pp。

4、If variables are defined and assigned correctly, the expression __ is wrong. C
A.a&b
B.a^b
C.&&x
D.a, b

5、Among the following assignments or initializations, __ is wrong. A
A.char str[10]; str=“string”;
B.char str[]=“string”;
C.char *p=“string”;
D.char *p; p=“string”;

6、According to the declaration: int (*p)[10];, p is a(n) __. A
A.pointer
B.array
C.function
D.element of array

p为指向含4个元素的一维整形数组的指针变量
int * p[4]是一个指针数组,就是数组里面放的是指针。由于[]比* 优先级更高,因此p先与[4]结合,形成p[4]形式,这显然是数组形式,它有4个元素,然后再与p前面的*结合,*表示此数组是指针类型的,每个数组元素(也就是一个指针变量)都可以指向一个整形变量。p[4]是指针数组,他是数组。数组里面放的是指针,简单的说定义了4个指针,分别是p[0] *p[1] *p[2] *p[3],相当于将这四个指针打包到这个数组中 (*p)[4]是数组指针,他是指针并且是一个指向一维数组的指针。因为以行为单位,又称行指针。通俗点讲,后面的[4]说明他的每行有4个元素,[0]代表第一列的下标,[1]代表第二列的下标,一次类推。

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值