目录
函数
概述:
函数的定义:
语法:
函数的调用
值传递
函数的常见样式
函数的声明
作用:
函数的分文件编写
作用:
指针
指针的基本概念:
指针的定义和使用
指针所占空间
空指针
野指针
const
一、const是什么
二、const的作用
const修饰指针
指针和数组
指针和函数
数组、函数、指针
参考:http://t.csdn.cn/1MJEu
作用:将一段经常使用的代码封装起来,减少重复代码。
一个大的程序,一般会分为多个程序块,每个块实现特定的功能。
函数的几个要素 返回值类型,函数名 ,参数,函数体语句,return表达式
返回值类型 函数名(参数列表)
{
函数语句;
return 表达式;
}
功能:使用定义好的函数
语法:函数名(参数)
就是函数调用时将参数值传给形参
值传递时,如果形参发生变化,并不会影响到实参
void Swap(int *num1, int *num2)
{
int temp;
temp = *num1;
*num1 = *num2;
*num2 = temp;
}
int main(void)
{
int a = 20, b = 50;
cout << "交换前a:" << a << " b:" << b << endl;
Swap(&a, &b);
cout << "交换后a:" << a << " b:" << b << endl;
system("pause");
return 0;
}
无参无返、有参无返、无参有返、有参有返
告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
函数的声明可以有很多次,定义只能有一次。
//声明
int max(int a,int b);
//定义
int max(int a ,int b)
{
return a+b;
}
让代码结构更加清晰
就是在.h的头文件里面放函数声明,函数的定义放到.c文件里
参考:http://t.csdn.cn/salh6
指针的作用:可以通过指针间接访问内存空间。
内存编号是从0开始记录,一般用十六进制数字表示。
可以利用指针变量保存地址。
指针变量定义语法:数据类型+变量名;
在32位操作系统下,无论什么类型的指针,都占4个字节的内存空间。
int *p = null;
空指针:指针变量指像内存编号中地址为0的空间
作用:初始化指针变量。
注意:空指针指向的内存空间是不可以访问的。
指针变量指向非法的内存空间。
const是C/C++中的类型修饰符。
1、对变量声明只读特性,保护变量值以防被修改。
2、节省空间,避免不必要的内存分配。const修饰的变量在程序运行过程中只有一份拷贝。
3、提高程序运行效率。编译器不为普通const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储和读取内存的操作。
const修饰指针有3种情况:
const修饰指针:const int* p;
const修饰常量:int * const p;
const即修饰指针也修饰常量:const int * const p ;
const修饰的是指针,指针指向可以改,指针指向的值不可以改
const int* p1 = &a;
ERR: *p = num1; //非法操作,修改指针指向的值
const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int* const p2 = &a;
const既修饰指针,又修饰常量,指针的指向和指针指向的值都不可以改变
const int* const p = &a;
作用:利用指针访问数组元素。
int arr[] = {1,2,3,4};
int* p = arr;
作用:利用指针做函数形参,可以改变实参的值。
test:封装一个函数,利用冒泡排序,实现对整型数组的升序排列
#include
using namespace std;
//冒泡排序
void Bubble_Sort(int* a, int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
int temp = 0;
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
int main(void)
{
int Array_1[] = { 9,11,123,55,324,324,66,677,12 };
int len = sizeof(Array_1) / sizeof(Array_1[0]);
cout << "排序前:";
for (int i = 0; i < len; i++)
{
cout << Array_1[i] << " ";
}cout << endl;
Bubble_Sort(Array_1,len);
cout << "排序后:";
for (int i = 0; i < len; i++)
{
cout << Array_1[i] << " ";
}cout << endl;
system("pause");
return 0;
}