1、基础语法要点
常量的定义:
#include <iostream>
using namespace std;
//常量的定义
#define day 7
const int a = 10;
int main()
{
cout << "Hello, world!"<<" day="<< day << endl;
cout << "常量a=" << a << endl;
system("pause");
return 0;
}
常量一经定义后不可修改,要注意define 没有分号;
数据类型的占用空间
数据类型 | 占用空间 | 取值范围 |
short | 2B | -2^15~2^15-1 |
int | 4B | -2^31~2^31-1 |
long | windows4B,linux4B(x86),linux8B(x64) | -2^31~2^31-1 |
long long | 8B | -2^63~2^63-1 |
float | 4B | 7位有效数字 |
double | 8B | 15~16位有效数字 |
char | 1B |
注意:float定义变量,如果后边没有f后缀的话,默认为double类型,如图所示:
C和C++中字符型变量只占用1个字节;
字符型变量并不是把字符本身放到内存中去存储,而是将对应的ASCII编码放入到存储单元;
字符串表示:
1、利用char[]表示
char str1[] = "hello world";
2、
#include
string name = "pshdhx";
查看类型的函数
sizeof(int)
布尔值 bool
只要是非0值,都代表真!
前置递增和后置递增
a++:后置递增。先进行表达式的运算后,自身再进行+1操作;
++a:前置递增。先进行自身+1操作后,再进行表达式的运算;
switch语句
优点:结构清晰,执行效率高;
缺点:判断的时候只能判断整型和字符型,不可以是一个区间;
一维数组
数组的定义方式
int arr[5];
arr[0] = 1;
int arr2[5] = { 10,20,30,40,50 };
int arr3[] = { 1,2,3,4,5 };
整个数组占用的内存空间: sizeof(arr)
每个数组元素占用的内存空间:sizeof(arr[0])
数组中的元素个数sizeof(arr)/sizeof(arr[0])
数组中的首地址:int(arr)
数组中第一个元素的地址为:(int)&arr[0]
数组名是常量,不可以进行赋值操作: //arr = 100;错误
二维数组
int arr4[2][3] = {
{1,2,3},
{4,5,6}
};
一般来讲,在头文件中作函数声明,在源文件中写函数定义。
指针
//定义指针
int a = 10;
int* p;
p = &a;//让指针p记录变量a的地址;
cout << a << endl; //10
cout << p << endl; //001DFBEC
cout << *p << endl;//*p是解指针
*p = 100;
cout << a << endl; //100
cout << *p << endl; //100
在32位操作系统下,不管是什么类型的指针,都是占用4B
在64位操作系统下,不管是什么类型的指针,都是占用8B
结构体
struct Student {
string name;
int age;
int sex;
};
Student s1;
s1.name = "pshdhx";
s1.age = 24;
cout << s1.name << s1.age << endl;
Student s2 = { "pshdx",24,1 };
Student * pp = &s2;
cout << pp->name << pp->sex << endl;
结构体常量不可修改
关于函数
值传递:修改形参的值,实际的值不会发生改变;【是拷贝参数,调用越多,空间损耗越大】