❶ c语言里有没有把数组元素全部赋值为0的函数
方法一、在定义时赋初值
1、静态数组
int[3][3]={0};
2、动态数组
int**a=newint*[n];
for(inti=0;i<n;i++)
a[i]=newint[m](0);
方法二、在定义完后赋值
for(inti=0;i<n;i++)
{
for(intj=0;j<m;j++)
a[i][j]=0;
}
方法三、用一个循环吧数组所有元素设置为0:
intarr[100];
inti=0;
for(i=0;i<100;i++)
arr[i]=0;//ThiswillmakeallZERO
方法四、
1、全局变量和静态变量初始化时会自动被设置为0。如果们声明全局变量,那么在运行前会变成全0。
intarr[1024];//Thisisglobal
intmain(void)
{
//statements
}
2、对于局部数组简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元素会被自动设置为相应类型的0。这是编译器自动完成的。可以这样写:
intmain(void)
{
intarr[1024]={0};//ThiswillmakeallZERO
//statements
}
3、可以用memset函数在程序开始时初始化数组。这条命令这在已经修改了数组之后又想将它重置为全0特别有用。
intarr[1024];
arr[5]=67;
memset(ZEROARRAY,0,1024);//ThiswillreinitializealltoZERO
❷ C语言 ,赋值后奇怪变0
数组a[3]里的元素只有a[0]、a[1]和a[2],a[3]里的3代表的是数组的元素个数。
❸ 在C语言中,当变量a赋值给变量b后,变量a的值就变为零了吗
晕!
要么t=b;b=a;a=t;要么t=a;a=b;b=t;!!
t=b;a=t;b=a;当然不可以了,这样把a的值丢了,最终a,b的值都是原来b的值。
❹ C语言初学者,abc赋值完计算结果都为0
汗~
printf命令中“”符号内是不能运算的,想输出a+b+c的值要写
printf("a+b+c=%d\n", a+b+c);才行
❺ c语言中怎么把一维数组初始化为全零啊,不用循环
下面3种方法:
1.int arr[10]={0};
如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。
2.int arr[31]={};
3.用memset函数在程序开始时初始化数组。比如:
int arr[1024];
memset(arr, 0, 1024); //清零
(5)c语言a赋值变为零扩展阅读:
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 ,它通常为新申请的内存做初始化工作。
❻ C语言中变量a=0与a==0的区别
a=0是说:给变量a赋值0
比方说,原来定义a=1或没有定义,现在执行赋值语句a=0,则变量a中的值就变为0,此时a等于0
a==0就相当于数学式中的“a等于0”
赋值是个动作,而等于则是判断比较
❼ C语言指针 这样为什么a 的值也变成0了
*(int**)p=NULL; 把地址为p的变量置成了0,a的地址放在p里,所以a值为0.
❽ C语言 为什么赋值之后的a只是零值
b是长整型,a是整型,把b赋值给a,会损失精度,失去后面的数据。