本文目录
- 一维数组和指针分别是什么数据类型啊
- 大一C语言问题一维数组与指针函数
- c语言用一维数组和指针作为函数参数编程实现学生成绩信息统计
- C语言中一维数组和指针有什么区别
- a[5]是一个一维数组,定义指针变量int *p,那么请问p=a与p=&a的区别是什么
- 一维数组和指针有什么区别呢
- 请问C语言里一维数组能用数组指针吗如果可以怎么用呢
- C语言 为什么指向一维数组的指针是简单变量指针而不是数组指针
一维数组和指针分别是什么数据类型啊
一维数组就是比如inta,a就是一维数组,而指针就似乎比如int*a=newint();用法其实一样,但是用指针的话就可以随时删除内存,而数组不行。并且,如果数组当做函数参数传递,会自动退化为指针。也就是传递a的地址。
大一C语言问题一维数组与指针函数
#include《stdio.h》
void Input(int *a,int n)
{int i;
for(i=0;i《n;i++)
scanf("%d",a+i);
}
int Max(int *a,int n)
{int i,max=*a;
for(i=1;i《n;i++)
if(*(a+i)》max)max=*(a+i);
return max;
}
int Min(int *a,int n)
{int i,min=*a;
for(i=1;i《n;i++)
if(*(a+i)《min)min=*(a+i);
return min;
}
float Avg(int *a,int n)
{int i,s=0;
for(i=0;i《n;i++)
s+=*(a+i);
return (float)s/n;
}
int main()
{ int a;
Input(a,10);
printf("最低分=%d\n",Min(a,10));
printf("最高分=%d\n",Max(a,10));
printf("平均分=%.1f\n",Avg(a,10));
return 0;
}
c语言用一维数组和指针作为函数参数编程实现学生成绩信息统计
下面是一个可以用一维数组和指针实现学生成绩信息统计的例子:#include 《stdio.h》#define NUM_STUDENTS 5#define NUM_GRADES 3void print_grades(int *grades) {printf("Grades: ");for (int i = 0; i 《 NUM_STUDENTS * NUM_GRADES; i++) {printf("%d ", grades);}printf("\n");}float average_grade(int *grades) {int sum = 0;for (int i = 0; i 《 NUM_STUDENTS * NUM_GRADES; i++) {sum += grades;}return (float)sum / (NUM_STUDENTS * NUM_GRADES);}int main() {int grades = {{70, 80, 90},{65, 75, 85},{60, 70, 80},{55, 65, 75},{50, 60, 70}};print_grades(&grades);printf("Average grade: %.2f\n", average_grade(&grades));return 0;}输出:Grades: 70 80 90 65 75 85 60 70 80 55 65 75 50 60 70 Average grade: 65.00在这个例子中,我们使用了一维数组 grades 和指针 *grades 作为函数参数。在函数 print_grades 中,我们遍历数组并打印每个元素。在函数 average_grade 中,我们计算数组中所有元素的平均值。请注意,我们使用了一维数组 grades 的地址作为指针 *grades 的值。这是因为一维数组名是一个指向数组第一个元素的指针。因此,当我们将一维数组名作为指针传递给函数时,实际上是将指针传递给函数。回答不易,望采纳谢谢
C语言中一维数组和指针有什么区别
C语言中,一维数组的数组名指向了这个数组的起始地址,而指针是它指向的某个东西的地址。例如定义int a,也可以用*(a+1)。当一个指针指向某个数组时,数组名和指针的作用应该是一样的。你定义的这个指针没有指向任何东西,是个野指针,不能通过类似于数组的方式使用。
a[5]是一个一维数组,定义指针变量int *p,那么请问p=a与p=&a的区别是什么
在数组中,数组名表示首地址常量。a等同于&a。所以p=a。就是p指向a首地址。p=&a是错的,a已经是地址里。可以写p=&a。
一维数组和指针有什么区别呢
首先,数组是数组,指针是指针,两者切不可混淆。数组和指针分别是C语言中的两种不同的数据类型。可以用指针访问的形式来访问数组,即采用间接访问操作符*来访问数组,并且在底层的实现时数组的下标访问就是转换成间接访问来访问的,所以有a底层的形式就是*(a+1)。上面的一切只能说明数组下标访问可以使用间接访问一样的实现,但是两者毕竟属于不同的数据类型,数组有长度信息,你可以用 sizeof来获取数组元素所占的字节数,但是sizeof来计算一个指针的大小只是这个指针变量或者指针常量所占的内存大小
请问C语言里一维数组能用数组指针吗如果可以怎么用呢
数组指针可以指向一维数组的。指针本来就是变量,是用来存放地址的变量。如:int (*a);a=b;a++;之后,*a相当于a
C语言 为什么指向一维数组的指针是简单变量指针而不是数组指针
指向一维数组的指针也“不是简单变量指针而是数组指针”。你把一维数组首指针与指向一维数组的指针混淆了。操作一维数组就是操作一维数组的元素,而元素是挨个存放的,所以只需要其中一个元素(通常是下标为0的元素)的指针就可以通过加减一个常数或用下标操作所有元素了,所以操作一维数组的指针是指向元素的指针,不需要指向数组的指针。操作多维数组,比如二维数组,操作每个元素时使用的也是这一行的第一个元素的指针,与操作一维数组是一样的;而操作二维数组的整行时才用得着“指向数组”的指针。所以二维数组的指针是二级指针,第一级是“数组指针”,管数组的行,第二级就是元素指针,管每行的元素。所以我们通常所说的一维数组的指针是不严谨的,其实是第一个元素的指针,叫数组“首指针”。