c語言給陣列賦值的3種形式
在c語言中,對陣列進行賦值的三種形式
1、通過迴圈的形式 即:陣列名[下標] 對陣列的元素進行依次賦值#include
int main()
int i;
int a[10] = ;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
2、通過迴圈的形式 陣列名+下標 對陣列的元素進行依次賦值#include
int main()
int i;
//指標+整型值,表示位址的前移,前移的位元組由指標指向的物件的型別決定
//b+1; 前移4個位元組(int型)
printf("%#p\n",a); //列印輸出陣列a的位址 相當於a[0]的位址
printf("%#p\n",&a[0]);
printf("%#p\n",a+1);
printf("%#p\n",&a[1]);
printf("%#p\n",a+2);
printf("%#p\n",&a[2]);
printf("請輸入陣列a元素的值:");
for(i=0;i<5;i++)
scanf("%d",a+i); //賦值給陣列a
printf("a陣列元素的值為:");
for(i=0;i<5;i++)
printf("%d ",*(a+i));
return 0;
列印出的結果:
3、通過迴圈的形式 利用指標 對陣列的元素進行依次賦值#include
int main()
int i;
int d[5] = ;
//指標指向一維陣列,指標指向陣列首元素
//資料型別 *指標名;
int *p = d;
//int *p = &d[0];
//指標指向陣列首元素。指標名可以當陣列名使用
printf("%#p\n",p);
printf("%d\n",d[0]);
printf("%d\n",*++p); //++p p的位址先偏移, *p
printf("%d\n",d[1]);
printf("%#p\n",p);
printf("%#p\n",&d[1]);
printf("請輸入陣列d元素的值:");
p = d;
for(i = 0; i < 5; i++)
//scanf("%d",p+i); //p+0 p+1 p+2 p+3
scanf("%d",p++); //p = p+1
//for迴圈結束,p偏移到元素d[4]的下乙個元素
p = &d[0];
for(i = 0; i < 5; i++)
//printf("%d ",*(p+i));
//printf("%d ",*p++); //p++,後置 *p取p變化之前的內容
printf("%d ",p[i]); //指標指向陣列首元素。指標名可以當陣列名使用
printf("\n-----------------\n");
return 0;
c 陣列賦初值 C 陣列的常用操作方法小結
1.陣列的宣告和賦值方式 int myarray int myarray int myarray new int 4 2.多維陣列的宣告 int myarray new int 2,3 int myarray 獲取多維陣列元素,可以使用 myarray 0,1 2 3.鋸齒陣列的宣告 int mya...
c 陣列賦初值 C 物件導向 索引器
索引器 封裝了類的私有陣列的操作,沒有名字 定義索引器的格式 public 陣列中元素的資料型別 關鍵字 this 下標 get 根據下標獲取陣列中該下標所對應的元素 先判斷下標是否越界 if 下標 私有陣列元素的個數 throw new indexoutofrangeexception 陣列越界 ...
C語言結構體賦初值
舊的c標準不支援在定義結構體的時候賦值,例如vs2010和vc 6.0 之前我發現我寫的在vs2019上執行正常的程式複製到vc6上就報錯,一方面是因為舊的c標準不支援一些新函式比如scanf s和get s,另一方面是某些特性改變了,比如舊的c標準不支援在定義結構體的時候賦值,在定義結構體的時候並...