| | 今日学习任务 | 嵌入式 C 语言强化编程练习 | 今日任务完成情况 | 今日任务按计划完成 1.熟练掌握数组的使用;(1-3 数组名的作用,数组的使用) 2.熟练特殊数组的使用;(指针数组、函数指针数组等) 3.熟练掌握右左法则的使用;(复杂定义声明解释)
-
| 今日开发中出现的问题汇总 |
- 一开始对于数组指针函数调用中的形参掌握的不是太好,导致程序编译错误
- 数组与指针间的转化不是太熟练
| 今日未解决问题 | 无 | 今日开发收获 |
- 通过练习熟练掌握数组的使用;(1-3 数组名的作用,数组的使用)
2.熟练特殊数组的使用;(指针数组、函数指针数组等) 3.指针数组(char *ptr[3] 在用malloc分配空间时,相当于一个二维数组char ptr [3][100]) 4.一维数组传参时,子函数的形参用一维数组首元素的地址接;二维数组传参时,子函数的形参用二维数组的首个一维数组的地址接;三维数组传参时,子函数的形参用三维数组的首个二维数组的地址接 5.int main(int argc , char * argv[])中的argc代表命令行参数的个数,argv 代表命令行的参数保留的类型 | 自我评价 | 今天基本能够跟上老师的教学安排,对于数组指针和指针数组的用法还需要自己多多练习 | 其他 | 无 | 1.简单输出一维数组、二维数组、三维数组 1 #include <stdio.h> 2 3 void print_func1(int *a) 4 { 5 int i; 6 for(i = 0; i < 2; i++) 7 { 8 printf("a[%d] = %d\n",i,a[i]); 9 } 10 } 11 12 void print_func2(int (*aa)[2]) 13 { 14 int i; 15 int j; 16 17 for(i = 0; i < 2; i++) 18 { 19 for(j = 0; j < 2; j++) 20 { 21 printf("a[%d][%d] = %d\n",i,j,aa[i][j]); 22 } 23 } 24 } 25 26 void print_func3(int (*aaa)[2][2]) 27 { 28 int i; 29 int j; 30 int k; 31 32 for(i = 0; i < 2; i++) 33 { 34 for(j = 0; j < 2; j++) 35 { 36 for(k = 0; k < 2; k++) 37 { 38 printf("aaa[%d][%d][%d]= %d\n",i,j,k,aaa[i][j][k]); 39 } 40 } 41 } 42 } 43 44 int main() 45 { 46 int a[2] = {1,2}; 47 int aa[2][2] = {1,2,3,4}; 48 int aaa[2][2][2] = {{1,2,3,4},{1,2,3,4}}; 49 50 print_func1(a); 51 print_func2(aa); 52 print_func3(aaa); 53 54 return 0; 55 } 2.用str[100]输出”hello”,用ptr[3][100]输出“hello1”,”hello2”,”hello3” 1 #include <stdio.h> 2 3 void print_func(char (*ptr)[3]) 4 { 5 int i; 6 for (i = 0; i < 3; i++) 7 { 8 printf("ptr[%d][100] = %s\n",i,ptr); 9 } 10 } 11 12 int main() 13 { 14 int i; 15 int j; 16 char str[100] ; 17 18 char ptr[3][100]; 19 20 scanf("%s",str); 21 printf("str = %s\n",str); 22 23 for(i = 0; i < 3; i++) 24 { 25 scanf("%s",ptr[i]); 26 printf("ptr[%d] = %s\n",i,ptr[i]); 27 } 28 print_func(ptr); 29 return 0; 30 } 3.输出指针数组的值 1 #include <stdio.h> 2 3 void print_func(int **pa) 4 { 5 int i; 6 for(i = 0; i < 3; i++) 7 { 8 pa[i] = (int *) malloc (sizeof (int) * 100); 9 scanf("%d\n",pa[i]); 10 printf("pa[%d] = %d\n",i,*pa[i]); 11 } 12 } 13 14 int main() 15 { 16 //int i; 17 int *pa[3]; 18 19 int num1 = 5; 20 int num2 = 6; 21 int num3 = 7; 22 23 #if 0 24 pa[0] = &num1; 25 pa[1] = &num2; 26 pa[2] = &num3; 27 28 for(i = 0; i < 3; i++) 29 { 30 printf("pa[%d] = %d\n",i,*pa[i]); 31 } 32 #endif 33 34 print_func(pa); 35 return 0; 36 } 4.输出命令行参数的个数,并用指针数组输出 1 #include <stdio.h> 2 3 int main(int argc, char *argv[]) 4 { 5 if(argc != 4) 6 { 7 printf("Please input three numbers!\n"); 8 exit(1); 9 } 10 printf("argc = %d\n",argc); 11 12 int i; 13 int a[3]; 14 15 for(i = 1; i < argc; i++) 16 { 17 a[i - 1] = atoi(argv[i]); 18 } 19 20 for(i = 0; i < 3; i++) 21 { 22 printf("a[%d] = %d\n",i,a[i]); 23 } 24 25 } |