77问答网
所有问题
当前搜索:
c语言指针和数组的转换
C
中
数组和指针
到底是否相同?
答:
规则1:表达式中的数组名总被编译器解析为指针,因此如下语句int a[3];int *p=a;是可以正确编译执行的。在表达式中a被解析为指向数组第一个元素的指针,那么赋值符号两边的类型匹配,因此可以正确编译执行。规则2:下标总是和指针的偏移量相同。
C语言
中将
数组的
下标改写成指针偏移量的主要原因在于
指针和
偏移量是底层...
C语言指针
问题(初学者)
答:
3.
指针与数组
问题:
数组的
名字本身代表该数组的首地址,要区分地址与数值之间的关系,比如char c[10], *p;(1)p=c;表示指针p指向
数组c
,相当于p=&c[0];c和&c[0]都是表示首地址 (2)c[0],c[1],...c[9]都是表示数组中每个具体变量的值,前面加&才是其地址,与指针相连时,一般...
c语言
中将一个
数组的
值赋给另外一个数组,好像要用
指针
来赋值
答:
错误的,不能用赋值语句将一个字符串常量直接给一个字符
数组
赋值。chars[20];charss[]="hello";s=ss;错误原因是:是您不能使用赋值语句将一个字符数组直接赋值给一个字符串数组,也就是说,必须使用strcpy()函数来实现一个字符串的副本(在
c语言
中,但是在c++的string类中,上面的赋值是正确的)。...
C语言指针
指向一维
数组与
二维数组?
答:
3和2是一样的,也是会报错的。可以使用行
指针
double (*p)[3]=data;指向
数组
第0行,也就是我们平常理解的第一行。访问方式,假设data是i行j列,*(*(p+i)+j)就是第i行j列的元素值,也就是data[i][j]的值。也可以使用列指针double *p = data[0]指向第0行0列,访问方式如下:...
C语言
中,
数组
做函数参数如何才能按值传递?
答:
传
数组
给一个函数,数组类型自动
转换
为
指针
类型,因而传的实际是地址。void func(int
array
[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。实际情况是,数组做参数,完全无法按值传递。这是由
C
/C++函数的实现机制决定的。下一个问题是:为什么偏要按值传递呢?当要...
c语言指针
,指向
数组的
指针、指向指针数组的指针、指向数组的指针的指...
答:
每个元素是int,不是int (*p)[n],而是最简单的int*p;2. 如何声明一个
指针
,这个指针也是指向
数组的
,数组有n个元素,每个元素不是int,而是指针int*;这个指针是int**p;3. 又如何声明一个指针,它指向另一个指针,这“另一个指针”指向一个数组,数组元素是int;这个指针仍然是int**p。
c语言指针与数组
,
怎么
联系起来?
答:
;
数组的
本质则是一系列的变量。2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
指针
可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
C语言
如何利用
指针
,将
数组
倒置啊
答:
include <stdio.h>void func(int *a,int n){ int *p,t; for(p=a+n-1;a<p;a++,p--) { t=*a; *a=*p; *p=t; }}int main(){ int a[10],i; for(i=0;i<10;++i) { scanf("%d",&a[i]); } func(a,10); for(i=0;i<...
C语言
菜鸟:如何用
指针
生成回文
数组
?
答:
所谓回文
数组
,就是从高到底和从低到高遍历,得到的是相同序列。该数组具有对称性。如果一个数组不是回文数组,可以把对称位置上值不相等的元素修改为相等,来生成回文数组。用
指针
可以按照如下思路:1 定义两个指针head和end,head指向数组头,end指向数组尾。2 比较两个指针指向的值,如果不相等,则令...
数组指针C语言的
问题,这道题的cd选项等效成什么?
答:
(1) int (*cp)[5], 这里有小括号,所以 cp 是1个
指针
,(又叫行指针),注意,是一个指针,后面[5]表示这个指针用于指向有5列的2维
数组
。 cp=c; 说明,c 是2维数组,它每行有5列元素,现在让cp指向了第一行。 cp=&c[0][0]; 若 cp+j 则指向 第 j 行。(2)
C语言
中...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜