1 知识点
(1)数组是相同类型的一段连续的空间
(2)对于int arr[] = {1,2,(3,4),5}数组,里面总共有4个元素,(3,4)为逗号表达式,逗号表达式会从左向右依次计算,去最后一个表达式的结果,所以取后者,因此数组中元素分别为:1,2,4,5
(3)数组名既可以表示数组的地址,也可以表示数组首元素的地址,两个在数值上是一样的,但是含义不一样。
(4)数组名只有在sizeof和&后才代表整个数组(虽然&arr 打印出来的还是首元素地址,但是,&arr+1,打印出来的地址,比arr多了一个数组地址)。其它都表示首元素的地址
(5)把一组数字逆序,第一种方法 指针的方法*(s-1+ret-i),第二种数组的方法arr(s-1+ret-i)
第三种方法,最后一个数字和第一个数字交换(在函数习题里,有写过字符串逆序,类似可用)
2 定义了一维 int 型数组 a[10] 后,下面错误的引用是:(c )
作业内容
A.a[0] = 1;
B.a[0] = 5*2;//可以的,正确
C.a[10] = 2;
D.a[1] = a[2] * a[0]//可以的,正确
3 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
代码展示:
1. #include <stdio.h> 2. int main() 3. { 4. int arr1[] = { 1,2,3,4,5 }; 5. int arr2[] = { 6,7,8,9,10 }; 6. int a = 0; 7. a = sizeof(arr1) / sizeof(arr1[0]); 8. int i = 0; 9. for (i = 0; i < a; i++) 10. { 11. int b = 0; 12. b = arr1[i]; 13. arr1[i] = arr2[i]; 14. arr2[i] = b; 15. } 16. for (i = 0; i < a; i++) 17. { 18. printf("%d ", arr1[i]); 19. } 20. printf("\n"); 21. for (i = 0; i < a; i++) 22. { 23. printf("%d ", arr2[i]); 24. } 25. return 0; 26. }