对于同一个数组,其所有元素的数据类型都是相同的。
数组名的书写规则应符合标识符的书写规定。
数组名不能与其他变量名相同。
方框号中常量式表示元素的个数,其下标从0开始计算。
允许在同一个类型说明中,说明多个数组和变量。
int a[5]={1,2,3,4,5}
void main (void){
int i,a[10];
for(i=0;i<10;1++)
a[i]=2 * i + 1;
for(i=0;1<=9;i++)
printf("%d",a[i]);
}
数据类型 数组名【数组长度】【数组长度】
int a[5][3]={{85,25,45},{13,64,97},{76,94,85},{49,68,75},{74,85,96}};
int a[][3]={85,75,92,61,65,71,59,63,90,85,87,64,46,88,97};
void main(void){
int i,j,s = 0,v[3];
int a[5][3]=(85,85,85,74,74,74,96,96,96,41,41,41,52,52,52);
for(i=0;i<3;i++){
for(j=0;j<5;j++){
s=s + a[j][i];
}
v[i]=s/5;
s=0;
}
printf("数学:%d\nC语言:%d\n物联网:%d\n",v[0],v[1],v[2]);
}
用来存放字符量的数组成为字符数组
char c[10]={'c','p','r','o','g','r','a','m'};
char c[]={'c','p','r','o','g','r','a','m'};
char c[]={cporgram};
void main(void){
int i,j;
char a[][5] = {{'B','A','S','I','C',},{'d','B','A','S','E'}};
char c[] = "C porgram";
for(i=0;i<2;i++){
for(j=0;j<5;j++)
printf("%c",a[i][j]);
printf("\n");
}
for(i=0;i<9;i++){
printf("%c\t",c[i]);
}
printf("\n%s",c);
}
一个指针是一个地址,是一个常量。而一个指针却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。为了避免混淆,我们约定:“指针”是指地址,是常量。“指针常量”是指取值为地址的变量。定义指针的目的是为了通过指针去访问内存单元。
对内存变量的定义包括三个内容:
①指针类型说明,即定义变量为一个指针变量;
②指针变量名;
③变量值(指针)所指的变量的数据类型。
类型说明符*指针名=&变量名;
其中类型说明符表示本指针变量所指向的变量的数据类型,*表示这是一个指针变量,&表示去表两名对应的内存地址。
swap(int *p1,int *p2){
int temp=*p1;
*p1=*p2;
*p2=temp;
}
void main(void){
int a,b;
scanf("%d,%d",&a,&b);
swap(&a,&b);
printf("%d,%d\n",a,b);
}
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
一个数组是由连续的一块内存单元组成的。数组名就是这块连续单元的首地址。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。
指针变量可以实现本身的值的改变。如p++是合法的,表示下一个数组元素的地址;而a++是错误的。因为a是数组名,它是数组的首地址,是常量。
指针可以指向基本类型,也可以指向符合类型,因此也可以指向另一个指针变量,称为指向指针的指针。
void main(){
int i=10;
int *p=&i;
printf ("%d\n",*p);//10
int **pp=&p;
printf("%d\n",**p);//10
}