昨天余留作業(yè)
1野揪。插入一個數(shù)
int arr[6]={1,5,6,8,12};
int i=0;
int j=0;
int value=0;
printf("input value:");
scanf("%d",&value);
for(i=0;i<6;i++){
if(value<arr[i]){
break;
}
for(j=5;j>i;j--){
arr[j]=arr[j-1];
}
arr[i]=value;
for(j=0;j<6;j++){
printf("%d",arr[j]);
}
printf("\n");
}
2.素數(shù)
int i=2;
int j=0;
int arr[n];
int count=0;
for(i=2;i<100;i++){
for(j=2;j<i;j++){
if(i%j==0){
break;
}
if(i==j){
arr[count]=i;
count++;
printf("%d",i);
if(count%5==0){
printf("\n");
}
}
for(i=0;i<count;i++){
printf("%d",arr[i]);
printf("\n");
}
}
}
一.數(shù)組
1.二維數(shù)組
行數(shù)可以省略囱挑,列不可省略
//以下初始化方法均可 int arr[][3]={1,2,3,4,5,6,7,8,9}; //int arr[3][3]={1,2,3,4,5,6,7,8,9}; //int arr[][3]={1,2,3,4,5,6}; //int arr[][3]={0}; //遍歷輸出二維數(shù)組 int i=0; int j=0; for(i=0;i<3;i++){ for(j=0;j<3;j++){ arr[i][j]=3*i+1; } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("arr[%d][%d]=%d\n",i,j,arr[i][j]); } }
2.指針
(1)指針類型是一種特殊的類型
datetype name;
datetype name;
datetype * name;
指針和普通變量的區(qū)別
指針:存地址;
普通變量:存值游添;
指針只能保存與其相同的類型唆涝。
(2)
(3)地址的訪問
:間接訪問運(yùn)算符
int a=10;
int pa;
pa =&a;
pa:取指針對應(yīng)內(nèi)存里面的值
(4)可以把指針的值賦給同類型的指針
(5)不同類型的指針的大小
(6)指針的類型和指針?biāo)赶虻念愋?br>
int pa;
double pb;
指針的類型:去掉變量名之后的部分
指針?biāo)赶虻念愋停喝サ糁羔樧兞棵推淝懊娴?/em>
(7)指針與數(shù)組
數(shù)組名是一個地址。
數(shù)組元素的訪問:
int arr[5]={1,2,3,4,5};
int p=arr;
arr[0];arr[3]
(arr); (arr+3)
(p); (p+3)
p[0]; pa[3]
(8)野指針
沒有初始化能耻,或者其指向的內(nèi)存被釋放晓猛,而指針沒有被置空凡辱;
危害:
造成系統(tǒng)資源的浪費,容易造成未知的致命錯誤透乾;
(9)指針地址的運(yùn)算
自增:指針向高地指方位移動
自減:往底地址方位移動
移動的字節(jié)數(shù)是指針?biāo)赶蝾愋偷拇笮?br>
指針相減,表示兩指針之間的距離捧韵,相加沒有意義汉操。指針加減一個常量,表示地主往高字節(jié)或低字節(jié)方向移動客情,常量值sizeof(對應(yīng)數(shù)據(jù)類型)個字節(jié)癞己!
(10)概念區(qū)分
int buf[3];
數(shù)組大小為3梭伐,存放三個int型變量
int *pb;
指針糊识,其類型為int *型
int arr[4];
指針數(shù)組
int (pa)[3];
數(shù)組指針,有稱行指針
二級指針
datatype **pointorname;
int a=10;
int *q=&a;
int **p=&q
p=q;
p=q=a;
定義一個指針愉耙,或?qū)Φ刂愤M(jìn)行操作時朴沿,一定要確定指針的指向