【下载】GTK学习笔记
时间:2011-01-29
来源:互联网
大家好,小弟刚学习Linux C,现在遇到了一点小问题
C代码:
if (a[0]==NULL)
我的意思是判断数组a中第一个变量是否为空,可是在编译时,GCC关于这一行的错误提示如下:
warning: comparison between pointer and integer
哪位大仙知道是怎么回事吗?小弟先说声谢谢啦!
C代码:
if (a[0]==NULL)
我的意思是判断数组a中第一个变量是否为空,可是在编译时,GCC关于这一行的错误提示如下:
warning: comparison between pointer and integer
哪位大仙知道是怎么回事吗?小弟先说声谢谢啦!
作者: yukun7402 发布时间: 2011-01-29
我先声明我不是大仙……
开完数组之后的第一件事情是初始化数组,切记!
int a[5];
int i;
for (i = 0; i < 5; i++)
a[i] = 0;
然后你再判断的时候就可以用:
if (a[0] == 0)
不初始化数组是一件很危险的事情~~
另外我不知道你开的数组是什么类型的,我暂且理解为int型的,那么a[0]肯定指的是存储空间里面的int型变量,而NULL返回的却是一个地址值。你把一个int型和一个地址值进行比较,编译器当然要报错了~~
开完数组之后的第一件事情是初始化数组,切记!
int a[5];
int i;
for (i = 0; i < 5; i++)
a[i] = 0;
然后你再判断的时候就可以用:
if (a[0] == 0)
不初始化数组是一件很危险的事情~~
另外我不知道你开的数组是什么类型的,我暂且理解为int型的,那么a[0]肯定指的是存储空间里面的int型变量,而NULL返回的却是一个地址值。你把一个int型和一个地址值进行比较,编译器当然要报错了~~
作者: racnil 发布时间: 2011-01-29
嗯,这样是个解决办法
作者: yukun7402 发布时间: 2011-01-29
谢谢啦
作者: yukun7402 发布时间: 2011-01-29
C语言是一个静态的语言,除非你定义了一个空指针,不然基本上不会出现变量为空的情况的。C的编译器会自动给你没有赋初始值的变量附上一个初始值,如果这个错误没有被发现的话往往会造成非常难以排除的错误。所以刚刚学习C语言的话尽量把好习惯养成……
作者: racnil 发布时间: 2011-01-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28