C语言初学者应该从哪方面入手学习?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4004个文字,预计阅读时间需要17分钟。
C++基于C的改进,编写C代码时可能遇到的常见问题:类型转换、内存管理、指针操作、兼容性问题。
c++基于c的修改,在写c代码的时候有时会遇到下面的一种情况
#include<stdio.h>
#include<stdlib.h>
int rand = 0;
int main()
{
printf("%d", rand);
return 0;
}
代码的意思很简单,定义了一个全局变量rang,并在主函数中打印rand的值,但是这个时候运行是会报错误的。
命名空间的使用
这个错误的原因就是在stdlib.h中定义了一个函数这个函数的名字也就是rand,而我又定义了一个全局变量rand,这就造成了错误,为了解决这种问题,c++就引用了命名空间。例如下面这样,
#include<stdio.h>
#include<stdlib.h>
namespace H
{
int rand = 0;
}//命名空间的名字是由我们自己决定的,这里我就在H的命名空间中定义了一个rand
//如果我要在主函数中使用这个变量只用使用::这个符号就可以,
int main()
{
printf("%p", rand);
printf("%d", H::rand);
//这样写就不会报错了。
return 0;
}
除此之外在命名空间中能够定义的东西,不止有变量,还可以定义结构体,函数等等。
而命名空间的使用也是为了解决c中命名冲突的问题。在c中遇到这种情况解决方法通常只能是修改全局变量的名字,而c++就中就能够使用命名空间去解决这种问题。
本文共计4004个文字,预计阅读时间需要17分钟。
C++基于C的改进,编写C代码时可能遇到的常见问题:类型转换、内存管理、指针操作、兼容性问题。
c++基于c的修改,在写c代码的时候有时会遇到下面的一种情况
#include<stdio.h>
#include<stdlib.h>
int rand = 0;
int main()
{
printf("%d", rand);
return 0;
}
代码的意思很简单,定义了一个全局变量rang,并在主函数中打印rand的值,但是这个时候运行是会报错误的。
命名空间的使用
这个错误的原因就是在stdlib.h中定义了一个函数这个函数的名字也就是rand,而我又定义了一个全局变量rand,这就造成了错误,为了解决这种问题,c++就引用了命名空间。例如下面这样,
#include<stdio.h>
#include<stdlib.h>
namespace H
{
int rand = 0;
}//命名空间的名字是由我们自己决定的,这里我就在H的命名空间中定义了一个rand
//如果我要在主函数中使用这个变量只用使用::这个符号就可以,
int main()
{
printf("%p", rand);
printf("%d", H::rand);
//这样写就不会报错了。
return 0;
}
除此之外在命名空间中能够定义的东西,不止有变量,还可以定义结构体,函数等等。
而命名空间的使用也是为了解决c中命名冲突的问题。在c中遇到这种情况解决方法通常只能是修改全局变量的名字,而c++就中就能够使用命名空间去解决这种问题。

