int a[] = {1,3,4};int *p = &a[-1];int i =0;for( i = 1; i <4; i++){ printf("%d\n", p[i]);} } 因为数组并不检查下表是否越界,下表仅表⽰偏移, -1就表⽰第⼀个元素前⾯那个元素 例⼦2 在头⽂件 stdarg.h 中,有如下宏定义:typedef char* list;va_arg #...
{inta[] = {1,3,4};int*p = &a[-1];inti =0;for( i =1; i <4; i++) { printf("%d\n", p[i]); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 因为数组并不检查下表是否越界,下表仅表示偏移, -1就表示第一个元素前面那个元素 例子2 在 头文件 stdarg.h 中,有如下宏定义...
C语言计算中得出-1.#indoo的原因一般有两类 第一类:数组下标溢出问题,例如数组出现负数的下标 第二类:数据类型上面的溢出,你如果求幂或者费伯拉西数列的时候,项数大很容易引发溢出,float类型数据溢出就报-1.#indoo这个错误.include <stdio.h> main() {float a[3]={0.0,1.0,3.0},b[3]={1....
C语言规定数组是由下标的,下标从左往右是从0开始的,假设一个数组由n个元素,那么最后一个元素的下标就是n-1,下标就相当于数组元素的编号,如下: 代码语言:javascript 复制 int arr[10]={0,1,2,3,4,5,6,7,8,9}; C语言中用下标引用操作符来访问数组的元素,例如我们要访问下标为3的元素,直接用arr[3]来...
函数是求出数组的平均数,并把大于平均数的数移到数组前端。主要思路是先算出平均数。然后找一遍x数组中大于平均数av的,先暂时存到数组y中,并赋值-1表示移走数据 然后找一遍x数组中!=-1的,即第一次没被存到y中的,存到数组y中。最后把数组y赋值给数组x。
include<stdio.h>#include <malloc.h>int main(){ int len, data, ret=-1,input; int *arr; scanf("%d %d", &len, &data); arr = (int*)malloc(len*sizeof(int)); for (int i=0; i<len; i++) { scanf("%d",&input); arr[i] = input; } ...
C语言规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号,如下: 代码语言:javascript 复制 int arr[10]={1,2,3,4,5,6,7,8,9,10}; 代码语言:javascript 复制 数组元素和下标 在C语言中数组的访问提供了一个操作符 [ ] ,这个操作符叫:下标...
C语言程序:include <stdio.h>/* 查找key在数组arr中是否存在,若存在,返回第一次出现的位置,否则输出-1 */int find(int arr[], int n, int key){int i;for(i=0; i<n; i++)if(arr[i] == key)return i;return -1;}void main(){int arr[] = {49, 38, 65, 97, 76, 13...
01数组的下标可以是负数 C语言中使用数组,一般来说都是这样的: int a[5] = {1, 2, 3, 4, 5}; a[0] = 10; 语法规定,数组的长度必须是个常量,保证数组所占的内存大小不变。数组下标从 0 开始,依次往后递增。于是大部分同学都把它当作了默认的规则。 其实,数组的长度可以是0,叫做柔性数组,目的是让...