一、C++基础语法
生成随机数
#include<ctime>
//添加随机种子,利用当前系统时间生成随机数
srand((unsigned int)time(NULL));
//生成随机数
int number = rand() % p;//生成0到p-1随机数
goto 使用
int main() {
cout << 1 << "**********" << endl;
goto FLAG;//设置标签
cout << 2 << "**********" << endl;
cout << 3 << "**********" << endl;
FLAG://跳转标签
cout << 4 << "**********" << endl;
cout << 5 << "**********" << endl;
cin.get();
return 0;
}
一维数组名用途(sizeof)
#include<iostream>
using namespace std;
int main() {
int arr[10];
cout << "整个数组占得内存大小" << sizeof(arr) <<endl;
cout << "一个元素占得内存大小" << sizeof(arr[0]) << endl;
cout << "共有多少个元素" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "第一个元素的地址" << (int) & arr[0] << endl;
system("pause");
return 0;
}
二维数组名用途(sizeof)
#include<iostream>
using namespace std;
int main() {
//定义二行三列数组
int arr[2][3] =
{
{2,4,1},
{5,3,1}
};
cout << "二维数组占用内存空间:" << sizeof(arr) << endl;
cout << "二维数组第一行占用内存空间" << sizeof(arr[0]) << endl;
cout << "二维数组第一个元素占用内存为" << sizeof(arr[0][0]) << endl;
cout << "二维数组的行数:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
cout << "二维数组的首地址:" << (int)arr << endl;
cout << "二维数组第一行首地址为:" << (int)arr[0] << endl;
cout << "二维数组第一个数的首地址" << (int)&arr[0][0] << endl;
cin.get();
return 0;
}
函数分文件编写
1.创建头文件.h
2.创建源文件
3.头文件中写声明
4.源文件中写定义
//swap.h头文件
#include<iostream>
using namespace std;
void swap(int a, int b);
//swap.cpp源文件
#include "swap.h"
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
cout << "a=" << a << " b=" << b << endl;
}
//引用文件
#include<iostream>
#include "swap.h"//引用
using namespace std;
int main() {
int a = 10;
int b = 20;
swap(a, b);
cin.get();
return 0;
}
指针
#include<iostream>
using namespace std;
int main() {
//1.定义指针
int a = 10;
//指针定义语法:数据类型*指针变量名;
int* p;
//让指针记录变量a的地址
p = &a;
cout << "a的地址为:" << &a << endl;
cout << "指针p为:" << p << endl;
//指针前加*代表解引用,找到指针指向的内存中的数据
*p = 1000;
cout << "a=" << a << endl;
cout << "*p" << *p << endl;
//32位系统中指针占4个字节,64位系统中指针占8个字节
cout <<"32位系统指针占几个字节:" << sizeof(int*) << endl;
//2. 空指针:指针变量指向内存编号为零的空间
//用途:初始化指针变量(空指针指向的内存是不可以访问的 0~255是系统占用的)
//int* p = NULL;
//*p = 100 报错,空指针不准访问
//3.野指针:指针变量指向非法的内存空间
//int* p = (int*)0x1100;
//cout << *p << endl; //报错,野指针不准访问
return 0;
}
const修饰指针
//1.cost修饰指针-常量指针 指针的指向可以修改,但是指针指向的值不可以改
int a = 10;
int b = 20;
const int* p = &a; //常量指针
/*
*p = 20; //错误,指针指向的值不能修改
p = &b; //正确,指针指向不可修改
*/
//2.cost修饰常量-指针常量 指针的指向不可以改,指针指向的值可以改
int* cost p = *a;//指针常量
/*
*p = 20;//正确,指针指向的值可以改
p = &b; //错误,指针指向不可以改
*/
//3.const即修饰指针,又修饰常量 指针的指向和指针的值都不能修改
const int* const p = &a;
/*
*p = 20; //错误,指针指向值不能修改
p = &b;//错误,指针指向不能修改
*/
//记忆技巧:观察 const 和 * 的位置 (const - 常量,恒定的,不变的)
//const int* p; const后面是* *操作就非法
//int* const p; const后面是p p操作就非法