求具体举例说明C语言数组的初始化和赋初值有何不同?
书上写了将程序运行时通过赋值语句或输入语句使变量得到第一个值的过程称为赋初值,赋初值需要占用程序运行时间;而在定义数组时指定元素的初值称为初始化,初始化是在编译阶段完成,...
书上写了将程序运行时通过赋值语句或输入语句使变量得到第一个值的过程称为赋初值,赋初值需要占用程序运行时间;而在定义数组时指定元素的初值称为初始化,初始化是在编译阶段完成,无需占用运行时间。
我对这个赋初值的概念还是比较模糊,不能区别其与初始化的不同,求举例具体说明。 展开
我对这个赋初值的概念还是比较模糊,不能区别其与初始化的不同,求举例具体说明。 展开
3个回答
展开全部
你的书上好像错了,所谓赋初值一般而言就是初始化啊
从根本上说,其实初始化也并不是编雀亏译阶段完成,对于全局变量(数组)而言,一种是exe文件中设定该程序的数据顷燃神区中的为这个数组存放空间中的值已经是初值了,当然这个值倒是编译程序生成目标程序时设定的,程序运行加载时,给定空间中的内容直接拷贝到空间了,段庆这个不占运行时间(C++中则是程序加载到main函数执行之前完成的,这个也不占运行时间)
对于自动局部变量而言,原则上说,每次运行到该模块就会重新初始化一次,肯定是要占用运行时间的,静态局部变量则第一次运行时才初始化一次,自然也会占用运行时间
至于你用赋值语句设定所谓的初值,一定会占用运行时间
从根本上说,其实初始化也并不是编雀亏译阶段完成,对于全局变量(数组)而言,一种是exe文件中设定该程序的数据顷燃神区中的为这个数组存放空间中的值已经是初值了,当然这个值倒是编译程序生成目标程序时设定的,程序运行加载时,给定空间中的内容直接拷贝到空间了,段庆这个不占运行时间(C++中则是程序加载到main函数执行之前完成的,这个也不占运行时间)
对于自动局部变量而言,原则上说,每次运行到该模块就会重新初始化一次,肯定是要占用运行时间的,静态局部变量则第一次运行时才初始化一次,自然也会占用运行时间
至于你用赋值语句设定所谓的初值,一定会占用运行时间
展开全部
例1:
初答悄旦始化:
char str[8]= "运空12345678"
赋初值:
char str[8];//定义
char i;
for(i=0;i<8;i++)//赋初值
{
str[i] = i+1;
}
//--------------------------------//
例2:
int dat = 10; //初始清扰化
//-----//
int dat;
dat = 10; //赋初值
希望能对你的理解有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fsdfsdfsdfsxfsf
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询