77问答网
所有问题
当前搜索:
具有相同类型的指针变量p与数组a
C中
数组和指针
到底是否
相同
?
答:
调试发现:出现下图这个错误,无法计算得到
p
[1]的值。原因稍后作解释。从这里就可以看出,
指针和数组
并不是等同的,数组的定义并不等同于指针的外部声明(注意声明和定义的区别,定义是为一个
变量
或者对象分配内存空间,而声明只是描述
类型
)。二.指针和数组访问时的区别 对数组下标的引用:对指针的引用:从上面的图中可以...
定义
数组a
[10] *p,为什么*p=a
和p
=a效果一样
答:
方式不一样,目的
相同
。int a[10],*p=a;//这是定义时初始化 int b[10],*pb;pb=b; //这是定义了
指针变量p
b,再给pb赋值。
假设a是一维
数组
而
p
是
指针变量
。如果刚执行了赋值操作p=a,下列哪些...
答:
p是一维指针 a是一维
数组
,相当于一维指针。A a[0]是元素
和p的指针类型
不匹配。 不正确。B 正确,而且表达式值为真。C *p等效于a[0] 正确,而且表达式为真。D p[0]
和a
[0]等效。 正确,而且表达式为真。于是A错误 BCD正确,且均为真。
有定义:int a[3][10];定义一个
指针p
,可以赋值:p=a,如何定义该指针?
答:
指向含有10个int型列的数组。int *p[10]; //
p
是一个含有10个int型
指针的数组
,即p是数组,可以存放10个类型为int*
的指针
。小技巧:如果指针包含在括号()中,可以把括号反过来看:比如:int (*p)[10],把()反过来:int ) * p ( [10], 即p是变量,其它都是
变量类型的
一部分。
int (*p)[4]和 int a[4]; int *p=a;有本质区别么, int (*p)[4]如何...
答:
有本质区别,int (*p)[4]:
p的
类型是指向一个
数组
的指针 int *p=a:p是一个指向整数的指针 初始化:int (*p)[4] = &a;要理解这个先要清楚
指针的
类型问题。内存地址保存在任何类型的指针中都是一个数值而已,但指针变量本身是有类型的,可能两个不同
类型的指针变量
的值是一样的。假设 int ...
指针与数组
的区别和联系是什么?
答:
和个数。数组可以存任何
类型的
数据,但不能存函数。既然它们之间没有任何关系,那为何很多人把数组和指针混淆呢?甚至很多人认为指 针
和数组
是一样的。这就与市面上的C 语言的书有关,几乎没有一本书把这个问题讲透彻,讲明白了。指针和数组的对比 指针 保存数据的地址,任何存入
指针变量p
的数据...
C语言
指针
问题:在定义指针时*p=a
和p
=a有区别吗?
答:
当然有区别,区别很大,*p=a,就是给
指针
的表示的地址赋值,也就是赋值给指针指向的存储单元;而p=a,则表示给指针赋值,也就是指针的地址变成了a。两者一个指明了具体值大小,一个指明了具体位置。
两个
相同类型的指针变量
可以做相加减运算吗
答:
应该选择C。A选项两个同
类型的指针
间可以比较大小,比较原则应该是按照实际内存的高低位比较的。B选项赋值,这个当然是可以的了。D选项两个
相同指针变量
相减可以获得在之间相隔的同类型元素个数(在某个类型的
数组
中的应用)。C选项是不可以的,因为两个指针相加什么都得不到,所以规定不允许相加。
C语言中(*(
p
+1))[1]与*(p+1)[1]的区别
答:
2、输出的格式不同 p一般是一个
和指针类型
一致的变量或者常量。p输出的是一个16进制数, 输出一个指针的地址。3、功能不同 p是让程序去那个地址取出数据。p存放的是地址。例子:1、int a[5]={1,2,3,4,5};int *p=a;//这是在定义
指针变量p
的同时就直接给它初始化,即把
数组a
的首地址赋...
p是
指针变量
,*p=a
和p
=&a的区别
答:
分清是语句里还是声明里。声明 里 int *p=a; 声明 *p 是 int 型指针,初始化,让
p
指向 a [
数组
] 的始地址。声明 里 int p=&a; 声明 p 是 int型变量,不是指针,初始化,把变量 a 的地址 &a 赋给 p.语句里,若 p 是
指针变量
,p=a; *p 表示 值,把 变量 a 的...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜