编程c语言-C语言中数组的元素如果不赋值会改变吗

问题描述

C语言中数组的元素如果不赋值会改变吗

做了一个循环,循环里是一个if判断,如果是真就给数组赋值,正常的话只会做一次,然后就不会在给数组赋值了,结果做完整个循环后,被赋值的数组的数又全变成初始的0了,这是怎么回事。

解决方案

看你的代码,找到之后,需要用break跳出循环。如果是函数调用,检查下形参和实参。

解决方案二:

源码贴出来,凭空没法诊断。有可能是数组寿命到了,或者其他原因

解决方案三:

加一个flag判断一下,如果是第一次就正常使用,如何不是,就退出

解决方案四:

你赋的值就是0,,,,,,,

时间: 2024-09-06 17:46:32

编程c语言-C语言中数组的元素如果不赋值会改变吗的相关文章

链接传参数-C语言,二维数组的元素,相同位置对应相加。求大神指教。

问题描述 C语言,二维数组的元素,相同位置对应相加.求大神指教. 两个二维数组,13列X64行,读取文件,元素相同位置对应相加,再求平均数.写出来之后,无法运行,一直都是seg fault11.还请大神指教. #include #include #include #include /*main program*/ int main() { int i,j,ave = 0; float filename1[832],filename2[832]; FILE*fp1,*fp2; /***read n

详解C++编程中数组的基本用法_C 语言

可以使用数组下标操作符 ([ ]) 访问数组的各个元素. 如果在无下标表达式中使用一维数组,组名计算为指向该数组中的第一个元素的指针. // using_arrays.cpp int main() { char chArray[10]; char *pch = chArray; // Evaluates to a pointer to the first element. char ch = chArray[0]; // Evaluates to the value of the first e

C语言找出数组中的特定元素的算法解析_C 语言

     问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它.能否只用一个额外数组和少量其它空间实现.       思路:如果能用两个辅助数组,那么相对来说简单一点,可定义数组Min和数组Max,其中Min[i]表示自a[i]之后的最小值(包括a[i]),Max[i]表示自a[i]之前元素的最大值.有了这两个辅助数组后,对于a[i],如果它大于Max[i-1]并且小于Min[i+1],那么就符合要求.       但是题目要求

再谈C语言中数组和指针之间的互操作

我曾说过,在C语言中只有一维的数组(这是我对数组的看法),而且数组元素可以是任何类型的数据(或对象),自然也可以是另外的一个数组(因为数组也是一种数据类型).所以如果你坚持要说有多维数组,那也不是不可能的事情.我们只要把一个数组赋值给另一个数组的元素就可以了.当然了,我们必须保证在程序编译期数组的大小是一个固定的常数. 其实,数组的操作很简单的.只要我们确定一个数组的大小和指向该数组下标为0的元素的指针,其他的任何一个数组下标的运算都等同于一个对应的指针运算,所以我们说"数组和指针是可以相互操作

浅议C语言中数组和指针的互操作

曾听好多朋友说,C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减. 当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有必要知道其中的基本的数据结构的比如数组,稍微有点深度的堆栈.列表.结构体等的操作和实现.指针也是C语言中的一个很优秀灵活的结构,对它的了解也是必不可少的. 我们一般都认为数组是一维的数据存储结构,因为二位数组或者说矩阵都可以看作是多个一维数组的组合结构,定义在其上的数据存储访问方式

c语言-C语言中多维数组如何赋值

问题描述 C语言中多维数组如何赋值 请问 多维数组如何赋值 int a[3][4][5]; 请问C语言的前辈们 数组a中的元素个数是不是60个呢? 我是这样算出来的 这个多维数组是 12一维数组的集合 这个1维数组的元素有5个 12x5=60 解决方案 C语言 指针数组 多维数组C语言 指针数组 多维数组C语言中多维数组的理解 解决方案二: 最后一个参数是在一行当中确定一个,第二参数是在很多行当中确定一行,第一个参数是在很多页当中确定一页,为了确定某个元素,你必须先确定它在哪一页上,每一页都是4

c语言-C语言中二级指针修改数组问题。

问题描述 C语言中二级指针修改数组问题. 数组相当于一级指针,我写了一个二级指针被调用.结果它总是宕机,求指导,谢谢. 解决方案 这段程序编译会报错吧:cannot convert parameter 1 from 'char (*)[100]' to 'char **' 可以这样 试试看#include #include #include int getMemBuf(char*& p2){ char* tmp = NULL; tmp = (char*)malloc(100); strcpy(t

c语言-C语言在函数中调用指数组的问题

问题描述 C语言在函数中调用指数组的问题 #include <stdio.h> int i=5; void output_array ( int array[] ){ int a; for ( a=0; a<i; a++ ){ printf ( "%i%s", &array[a], "t" ); //warning: format specifies type 'int' but the argument has type 'int *'

c语言-初学C语言中数组下标的问题

问题描述 初学C语言中数组下标的问题 void strtol(char s[]){ int i=0; while(s[i++]); while(i>=0) s[i--]=s[i]; } 发现没有报错,怎么解释呢 显然会出现s[0]=s[-1]不是吗 解决方案 s[i--]=s[i]; 这个执行的是s[i]=s[i]; i--; 再说了,就算数组访问下溢,也不会报错. 解决方案二: s[-1]相当于*(s-1),也就是说数组的第一项之前的一字节内存.越界了.编译器没有你想象的那么智能,所以没报错