指针的赋值
2011-08-12 08:10
141 查看
嗯嗯,今天写C代码遇到个warning是关于指针赋值的:
char *a = "hello";
int *b = a;
像上面这种代码,GCC是不报错的,而是报一个warning:
warning: initialization from incompatible pointer type
若是:
float a = 1.1;
int* b = &a;
也是报上面那个warning. 看来和指针指向的存储区域没关系哈。
但是如过一个函数的返回值是一个指针例如:
int* tmp()
{
....
return a;
}
float *b = tmp();
报的warning就不一样了。
warning: initialization makes pointer from integer without a cast
比较搞笑的GCC啊,google发现是因为函数没有声明, GCC对于未声明的函数 默认返回 int 。
加上函数声明之后,就和前面两个例子的警告一样了。
嗯嗯。看来懂编译器会对debug很有帮助啊。
char *a = "hello";
int *b = a;
像上面这种代码,GCC是不报错的,而是报一个warning:
warning: initialization from incompatible pointer type
若是:
float a = 1.1;
int* b = &a;
也是报上面那个warning. 看来和指针指向的存储区域没关系哈。
但是如过一个函数的返回值是一个指针例如:
int* tmp()
{
....
return a;
}
float *b = tmp();
报的warning就不一样了。
warning: initialization makes pointer from integer without a cast
比较搞笑的GCC啊,google发现是因为函数没有声明, GCC对于未声明的函数 默认返回 int 。
加上函数声明之后,就和前面两个例子的警告一样了。
嗯嗯。看来懂编译器会对debug很有帮助啊。
相关文章推荐
- 将地址赋值给指针
- 指针赋值的问题
- C++ 指针的两种操作,通过指针赋值 & 对指针赋值
- 空指针赋值分区
- 指针的初始化和赋值
- 基类指针赋值兼容规则
- 转载:C语言指针的初始化和赋值
- c语言中通过指针将数值赋值到制定内存地址
- C++_指针悬挂和赋值操作符的重载
- const与指针之间的赋值
- 漫谈C指针第二讲---变量赋值与取地址
- [笔试题 2][c/c++]关于指针直接赋值问题
- LeetCode | Copy List with Random Pointer(赋值带有随机指针的链表)
- C++指针之间的赋值与转换规则总结
- 函数的指针如何说明、赋值、调用
- C语言指针的初始化和赋值
- Java关于数组对象赋值与指针
- C++ 指针 赋值基本问题
- c语言中通过指针将数值赋值到制定内存地址
- 二十八、数组、指针和字符串:指针的赋值和指针运算(指针常量,常量指针)