一、数组指针和指针数组的区别
区别是数据类型不同。
数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;
指针数组:是指一个数组里面装着指针,也即指针数组是一个数组;
二、如何在c语言二维数组中使用指针
对于a[i][j](二维数组的大小为n×m)而言,首先要搞清楚行指针和列指针行指针:&a[i]或者a+i指向行,&a[i]=&*(a+i)=a+i列指针:a[i]或*(a+i)指向列,a[i]等价于*(a+i)元素的引用方式有如下三种方式1.通过地址引用二维元素*(&a[i][j]),*(a[i]+j),*(*(a+i)+j),*(a[0]+m*i+j)*(&a[0][0]+m*i+j)(*(a+i))[j]2.建立一个指针数组引用二维元素int*p[3],a[3][2],i,j;for(i=0;imain(){intscore[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};inti,j;printf("输入学生号:0-2");scanf("%d",&i);printf("thescoreofNo.%dare:\n",i);for(j=0;jmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p
main(){intscore[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};inti,j;printf("输入学生号:0-2");scanf("%d",&i);printf("thescoreofNo.%dare:\n",i);for(j=0;jmain(){intscore[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};inti,j,*p;printf("输入学生号:");scanf("%d",&i);printf("thescoreofNo.%dare:\n",i);for(p=score[i];p
三、c语言数组的使用方法
C语言中的数组是一种数据结构,用于存储一组相同类型的数据。以下是C语言中数组的使用方法:
1.定义数组:
在C语言中,可以使用以下语法定义一个数组:
```c
数据类型数组名[数组长度];
```
例如,定义一个整数数组:
```c
intnumbers[5];
```
这个语句定义了一个名为`numbers`的整数数组,它可以存储5个整数。
2.初始化数组:
在定义数组的同时,可以对其进行初始化。例如:
```c
intnumbers[5]={1,2,3,4,5};
```
或者只初始化部分元素:
```c
intnumbers[5]={1,2,3};
```
其余未初始化的元素会自动设置为0。
3.访问数组元素:
通过数组名和索引(下标)访问数组元素。数组索引从0开始,因此第一个元素的索引为0。例如:
```c
intnumbers[5]={1,2,3,4,5};
intfirst_element=numbers[0];//first_element的值为1
```
4.修改数组元素:
可以通过赋值语句修改数组元素。例如:
```c
numbers[0]=10;//将第一个元素的值改为10
```
5.数组长度:
使用`sizeof`运算符可以获得数组的长度(以字节为单位)。例如:
```c
intnumbers[5];
intarray_length=sizeof(numbers);//array_length的值为20(假设一个整数占用4字节内存)
```
请注意,数组的长度在定义后无法更改。
6.遍历数组:
使用循环遍历数组中的所有元素。例如:
```c
intnumbers[5]={1,2,3,4,5};
for(inti=0;i<5;i++){
printf("%d\n",numbers[i]);
}
```
这个例子使用了for循环打印出数组中的所有元素。
这只是C语言中数组使用的基本方法。在实际编程中,还可以使用多维数组、动态数组等更高级的特性。
四、数组名和指针的区别
数组和指针的区别:数组名确实表示指向数组首地址的指针,但这个指针很特别,它的值(指针的值指的是指针所指的地址)不能被改写,能改写的仅仅是其指向的内容,换句话说,数组名只能指向数组的首地址,如果有数组chara[];那么如果出现a=a+1;这是编译都通不过的错误。而对于一个普通的指针是可以的,再比如有数组chara[];那么再定义一个char*p=a;然后再用p=p+1是合法的,这表示让指针p指向&a[1]。它们的第二个区别是:每当用到数组名这个指针的时候,系统都会传入数组的信息,而普通的指针只是一个4字节的整数,例如:
chara[5];char*p=a;//指针a和指针p都指向数组a的首地址cout<<sizeof(a)<<"##"<<sizeof(p)<<endl;
这时的运行结果是“5##4”
非常感谢您的阅读!我们希望本文对于解决您关于指针数组的用法和指针数组的用法有哪些的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。