C++基础语法(二)
数组函数指针
数组#include函数using namespace std; int main() { // 一维数组 int score1[10]; score1[0] = 100; score1[1] = 99; cout << score1[0] << endl; cout << score1[9] << endl; // 没有赋值的元素默认是0 int score2[10] = {1,2,3,4,5,6,7,8,9,0}; int score3[] = {1,2,3,4,5,6,7,8,9,0}; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; cout << "整个数组所占内存空间为: " << sizeof(arr) << endl; cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl; cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl; cout << "数组首地址为: " << (long long)arr << endl; cout << "数组中第一个元素地址为: " << (long long)&arr[0] << endl; cout << "数组中第二个元素地址为: " << (long long)&arr[1] << endl; // 二维数组 int arr2[2][3]; arr2[0][0] = 1; arr2[0][1] = 2; int arr3[2][3] = { {1,2,3}, {4,5,6} }; // 应当尽量使用这种方法定义array,以增强可读性。 int arr4[2][3] = {1,2,3,4,5,6}; int arr5[][3] = {1,2,3,4,5,6}; system("pause"); return 0; }
#include "min.h" #includeusing namespace std; int add(int num1, int num2) // 定义一个加法 { int sum = num1 + num2; return sum; } void swap(int num1, int num2) // 两个变量交换数值 { cout << "交换前num1=" << num1 < b ? a : b; }
// min.cpp源文件
#include "min.h"
int min(int a, int b) // 返回两个数中更小的一个
{
return a > b ? b : a;
}
//min.c头文件 #include指针using namespace std; int min(int a, int b);
#includeusing namespace std; void swap(int * p1, int * p2) { int temp = *p1; *p1 = *p2; *p2 = temp; return; } int main() { int a = 0; int * p; // 定义指针 p = &a; cout << "p = " << p << endl; cout << "a = " << &a << endl; // 1. 使用指针 *p = 1000; // 解引用,使指针指向的内存值改变 cout << "a = " << a << endl; cout << "*p = " << *p << endl; // 2. 指针也是一种数据类型 cout << sizeof(p) << endl; // 指针占用8个字节 // 3. 常量指针、指针常量、const修饰指针和常量 int a1 = 10; int a2 = 20; const int * p1 = &a1; // 常量指针,指针的指向可以改,但指针指向的值不能改 // * p1 = 99; 错误的 p1 = &a2; // 正确的 int * const p2 = &a2; // 指针常量, 指针的值可以改,但指针的指向不可以改 * p2 = 99; // 正确的 // p2 = &a1; 错误的 const int * const p3 = &a1; // 指针的指向和值都不可以改 // 4. 利用指针访问数组中的元素 int arr[10] = {1,2,3,4,5,6,7,8,9,0}; cout << "第一个元素为:" << arr[0] << endl; int * p4 = arr; // arr就是数组的首地址 cout << "利用指针访问第一个元素" << *p4 << endl; p4++; // 指针向后移动了四个字节,现在指向的是arr中的第二个元素 cout << "利用指针访问第一个元素" << *p4 << endl; // 5. 在函数中实现地址传递,地址传递与值传递不同,可以改变实参。 int a3 = 1; int a4 = 2; swap(&a3, &a4); cout << "a3 = " << a3 << endl; cout << "a4 = " << a4 << endl; system("pause"); return 0; }



