定义变量初始化有什么好处?

Apple_____ 2012-04-24 01:03:15
定义变量后初始化有什么好处?
大虾,从专业方面说说(有人说可以提高编译效率)。真是这样吗?为什么?
...全文
379 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello573973202 2012-04-24
  • 打赏
  • 举报
回复
防止程序执行过程变量访问的是随机值或是指针变量访问的是内存块原先存储的值
景语 2012-04-24
  • 打赏
  • 举报
回复
防止后面忘了初始化悲剧掉。
Apple_____ 2012-04-24
  • 打赏
  • 举报
回复

这样的话指针不就相当于数组了吗。

如果定义指针数组const char * path_name[] = {"c:\\windows\\selfcopy.exe","C:\\Windows\\System32\\selfcopy.exe"};

这是不是相当于二维数组了?
ouen333 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
const char *path_name = "c:\\windows\\selfcopy.exe"

为什么指针初始化为字符串呀?
不是应该给指针变量初始化为地址吗。怎么变成字符串了?
大虾们帮忙看看。
[/Quote]

其实path_name得到的就是这个字符串的地址啊。
ouen333 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
为什么定义的char型指针
输出时printf(“%s”,path_name);
会输出字符串,他定义的不是字符型的指针吗?


这样输出是否是遇到\0时才会认为是结尾。
[/Quote]
是的
Apple_____ 2012-04-24
  • 打赏
  • 举报
回复
为什么定义的char型指针
输出时printf(“%s”,path_name);
会输出字符串,他定义的不是字符型的指针吗?


这样输出是否是遇到\0时才会认为是结尾。
Apple_____ 2012-04-24
  • 打赏
  • 举报
回复
const char *path_name = "c:\\windows\\selfcopy.exe"

为什么指针初始化为字符串呀?
不是应该给指针变量初始化为地址吗。怎么变成字符串了?
大虾们帮忙看看。
火龙 2012-04-24
  • 打赏
  • 举报
回复
不初始化值,写程序大了有时候错都不知道怎么错的
赵4老师 2012-04-24
  • 打赏
  • 举报
回复
要不先弄清楚有什么坏处。
Linkhai 2012-04-24
  • 打赏
  • 举报
回复
说提高编译效率,我个人觉得说提高自己的编程效率更合适。定义变量后的初始化其实应该是一个良好的习惯。应为这在编程的过程中 可以避免很多不必要的麻烦。举个很简单的例子吧。在C中,我要定义一个整形数组,接收10个整数,然后输出。
代码如下

#include<stdio.h>

void main()
{
int a[10];
int i;
while(i<10)
{
scanf("%d",&a[i]);
i++;
}
i=0;
while(i<10)
{
printf("%d ",a[i]);
i++;
}
printf("\n");
}

如果你这样去执行代码,你会发现程序会崩溃,为什么会这样呢。
就是应为i这个变量你没有初始化。导致i的值是不可预知的,这样的
话,不仅在while循环里有问题,数组下标也会溢出。但是如果你吧i
在开始就初始化为0就不会有这样的问题了。
当然不是所有的人都会范这样的错误,因为对于有良好的编程习惯
的程序员来说,这种错误是不应该的。有时候人犯糊涂的时候,就会花
很多时间来改正这样的错误,这样就影响了你开发程序的时间了。
bdmh 2012-04-24
  • 打赏
  • 举报
回复
保证有值,可以访问,不会出现未初始化就访问出错,会不会提高效率,或许吧,因为代码中初始化,是在编译期就有了

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧