2.数组越界即非法访问内存(此程序在vc6.0中出现死循环)
inti; int arr[10]; { for(i=0;i<=10;i++) { arr[i]=0; printf("%d\n",i); } } 3.数组名arr在定义数组的同一个函数中的如下情况表示整个数组 A:sizeof(arr)表示整个数组占用的字节数。可以通过sizeof(arr)/sizeof(arr[0])求数组长度。 B:&arr+1表示加整个数组的大小。 C:其他情况一维数组数组名表示数组首元素的地址。例如:int arr[10];int *p=arr; 4.真题演练 给定如下代码,int x[4]={0};int y[4]={1};数组x和y的值为(B) A:{0,0,0,0},{1,1,1,1} B:{0,0,0,0},{1,0,0,0}5.数组的简单输出
#include <stdio.h> int main() { int drr[]={1,2,3,4,5,6,8,9}; drr[0]=100; drr[6]=12; for(int i=0;i<sizeof(drr)/sizeof(drr[0]);i++) { printf("%d ",drr[i]); //printf("%d ",sizeof(drr)); } return 0; } 6.将arr的数据逆序输出
#include <stdio.h> void Show(int arr[],int len)//输出函数 { for(int i=0;i<len;i++) { printf("%d ",arr[i]); } printf("\n"); } void Reverse(int arr[],int len)//逆序输出。整型数组一定要传长度。 { int tmp; for(int i=0;i<len/2;i++) { tmp=arr[i]; arr[i]=arr[len-i-1]; arr[len-i-1]=tmp; } Show(arr,len); } int main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; Reverse(arr,sizeof(arr)/sizeof(arr[0])); //Show(arr,sizeof(arr)/sizeof(arr[0]));//arr不表示整个数组 return 0; }