
按说是不行的,可下面的代码输出结果是可以的。
//#include "stdafxh"//vc++60加上这一行
#include "stdioh"
#include "stringh"
void main(void){
const int a[3]={1,2,3};
printf("%d %d %d\n",a[0],a[1],a[2]);
memset((void)a,0,12);
printf("%d %d %d\n",a[0],a[1],a[2]);
}
这说明memset函数不涉及变量,而只对内存 *** 作。无论什么性质的变量,只要找到存放它的内存单元,改变其中的内容是无法抵挡的,除非系统保护的空间。
c语言不能对这个数组赋值,只能通过遍历数组达到给数组中每个元素赋值的目的。初始化的时候可以用int
a[4]={0};这样给整个数组元素赋值为0,若想给已初始化的数组清零,也只能遍历数组。
在调用AVERAGEAdd之后再次进入这个函数后,之前赋值的val->rear被清零了。
不知道你想表达什么意思。这是貌似是一个循环队列。在AVERAGEAdd函数中调用参数指针val,传递的是实际参数的地址,产生的影响随调用结束后保留。AVERAGEAdd实际上是添加下一个节点,并且使最后一个值得rear向下下移一位,即val->rear=(var->rear+1)%val->size。你说的清零大概是指当rear==front时,rear又重新返回到开始处吧。这是循环队列的性质。
还有就是在AVERAGEAdd中你传入的val指针必须分配内存才能赋值其值,否则就是对空指针 *** 作。
选定允许输入数据的单元格,设置单元格格式——保护——取消“锁定”;
选定不允许修改的含公式的单元格,设置单元格格式——保护——勾选“锁定”;
工具——保护——保护工作表,可以设定密码。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)