1. 写程序(c语言),使用指针实现打印一维数组所有元素的操作。

#include<stdio.h>

voidmain()

{

inta[100],*p;

intn,t;/*你所要输入数字的个数*/

p=a;

printf("pleaseinputnumbern:");

scanf("%d",&n);

t=n;

while(n--)scanf("%d",p++);/*以此输入要输入的数字*/

p=p-t;

for(inti=0;i<t;i++)

{

if(i%4==0)printf(" ");

printf("%d ",*(p++));

}

printf(" ");

}

运行结果见附图

2. c语言,指向一维数组的指针变量

  1. p=&a;才是=号两边类型复匹配。因为p被声制明为指向有4个元素的一维整型数组的指针,而a被定义为一个整型数组的第一个元素的指针,所以写成p=a;等号两边类型不匹配,连编译都过不了。而&a就是一个有4个整型元素的一维数组的指针——就是说在int a[4]={1,3,5,7};的定义后,a是1的地址,a+1就2的地址;而&a的值虽与a相同,但&a是整个数组{1,3,5,7}的地址,&a+1就指向7后面的那个单元了。而int (*p)[4];这种声明恰好就是&a的意思,即p是个指针,指向一个4元素整型数组,也就是p+1就要跳过4个int元素所占有的空间。

  2. printf("%d ",(*p)[3]);中的(*p)[3]的意思是这样的:有了p=&a;后,p的地址“值”就是1的地址“值”,但意思是紧挨着存放的1,3,5,7这4个int数的首地址,*p后就是第一个元素1的地址了,那么(*p)[3]就向后移动3个元素位置,应该是7了……这里把*p用()括起来是因为[]的优先级比*高,不括起来就被解释成*(p[3])了,意思就大错了!

这里涉及的指针操作表述起来有些“绕”,得慢慢体会……

3. 请问C语言里一维数组能用数组指针吗如果可以怎么用呢

数组指针可以指向一维数组的。
指针本来就是变量,是用来存放地址的变量。
如:
int (*a)[3],b[12];
a=b;
a++;
之后,*a相当于a[3]

4. c语言一维数组与指针

指针p原来指向数组a的首地址即a[0]
p+1指向a[1]的地址。
所以对此地址取值:*(p+1),这就是a[1]的值。

5. c语言一维数组,指针,动态存储分配

#include<stdio.h>
#include<string.h>
intmain()
{intn,i,*p;
scanf("%d",&n);
p=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{*(p+i)=i+1;
printf("%d",p[i]);
}
return0;
}

6. c语言中指向一维数组的指针个指针数组有什么区别: 例如int a[3][2]; int (*p

int (*p)[2]是一维数组的指针,数组里面的元素是整形,指针指向这个数组,
int *p[3]是指针数组,首先是个数组,这个数组里面存放的元素都是指针

7. c语言一维数组与指针

数组名称实际上就是一个指向首地址的指针,增加其值向后指,减少其值向前指,版注意别指空了,所以你定义权一个指向数组的指针只不过是定义了一个数组别名,数组怎么用指针就能怎么用,反过来指针怎么用数组名就能怎么用

8. C语言中一维数组和指针有什么区别

指针,它被用来存放地址用。
声明 char *b; 就是定了 一个存放地址 的单元,这个单元大小是4字节,里面 只能 放下 一个地址,而且 只能用于 指向 一个 char型数据。
一维数组 用于存放 数据, 例如 char s[10], 它有10个存贮单元,可以存放 10个 char 数据。
一个 char型数据 占 1个字节。
指针 没有存放数据 的空间。
让 char *b; 获得 存放数据 的空间,可以用 动态分配,例如
b = (char *) malloc(sizeof(char) * 10); 这样一来,它就有了 10个 char 数据 存放的空间了。
这样就正确了:
char *b;
b = (char *) malloc(sizeof(char) * 10);
b[0]='z'; b[1]='b'; b[2]='\0';
printf("%c %c\n",b[0],b[1]);
printf("%s",b);
另一个办法是让 b 指向 一个 已经有存放空间的 数组:
char *b;
char a[10];
b = a; // 让 b 指向a数组
b[0]='z'; b[1]='b'; b[2]='\0'; //于是就正确了
printf("%c %c\n",b[0],b[1]);
printf("%s",b);

9. C语言指针指向一维数组与二维数组

10. C语言指针和一维数组的问题

int *p=a;
实际就是等价于 int *p; p=a;
是声明并初始化时的简略写法。