一、函数的声明:告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
注:函数的声明可以多次,但是函数的定义只能有一次。
#include <iostream>
using namespace std;
int max(int, int);
int main()
{
int a = 10;
int b = 20;
cout << max(a, b) << endl;
system("pause");
return 0;
}
int max(int a, int b)
{
return a > b ? a : b;
}
如果没有函数声明,则下面的函数调用max(a, b),不知道返回值类型,a和b的数据类型,所以函数声明的作用就是提前告诉有这个函数,让程序不会发生错误。
二、函数的分文件编写:让代码结构更加清晰。
注意别忘了在源文件中包含自己写的头文件。
三、空指针和野指针
1)空指针:指针变量指向内存中编号为0的空间。
用途:初始化指针变量。
注意:空指针指向的内存是不可以访问的。(0~255之间的内存编号是系统占用的,因此不可以访访问)
#include <iostream>
using namespace std;
int main()
{
int* p = NULL;
*p = 100;
system("pause");
return 0;
}
2)野指针:指针变量指向非法的内存空间。
#include <iostream>
using namespace std;
int main()
{
int* p = (int*)0x78283;
cout << *p << endl;
system("pause");
return 0;
}
(int*)强制类型转换为指针类型。不过没有权限,会报错。
在程序中,应该尽量避免野指针。
总结:空指针和野指针都不是我们申请的空间,因此不要访问。
1.const修饰指针——常量指针
int a = 10;
int b = 10;
int* p = &a;
——————————————————————————————————————————
常量指针:常量在前说明它是一个常量,值不可以改。
const放在指针的前面,表示保护的是指针
指针常量:指针是一个常量,指针的指向不可以改。
const放在最前面,表示保护的是值