java出身的我,不习惯使用其他的IDE所以使用了Eclipse来编写C++程序。需要先下载eclipse c++版本。然后下载MinGW。配置环境变量。然后就可以新建一个C++的项目了。
我学东西的步骤就是 ,先会用,然后再研究为什么这么用。所以我先写代码:
/* * first.cpp * * Created on: 2014年10月27日 * Author: chuer
*/ #include <iostream> #include <climits> #include <cstring> #include <string> using namespace std; //函数需要先声明 然后下面再定义 int aaa(int n, int m); void bbb(); void test_array(); void test_string(); void test_struct(); void test_union(); void test_enum(); //结构体 struct people { string name; int age; }; //共用体 (公用一段内存) union num { int int_val; long long_val; double double_val; }; //枚举 enum color { red, yellow = 6, blue, green, perpul }; void test_param(int num, people p); void test_address(); void test_point(); void test_point_param(int *p ,int &a); int main() { //int b = aaa(5,3); //cout << b << endl; // bbb(); // test_array(); // test_string(); // test_struct(); // test_union(); // test_enum(); // int a = 1; // people p; // p.age = 1; // cout << "a=" << a << " p.age=" << p.age << endl; // test_param(a,p); // cout << "a=" << a << " p.age=" << p.age << endl; // test_address(); test_point(); // int a = 100; // int* p = &a; // // cout << a << endl; // test_point_param(p,a); // cout << a << endl; return 0; } void test_point_param(int* p ,int& a){ cout << "invoke test_point_param();" << endl; cout << p << endl; cout << &a << endl; a = 101; *p = 102; } //测试指针 void test_point() { int a = 100; int *b; b = &a; cout << "a=" << a << endl; cout << "&a=" << &a << endl; cout << "b=" << b << endl; cout << "&b=" << &b << endl; cout << "*b=" << *b << endl; *b = *b + 1; cout << "a=" << a << endl; cout << "&a=" << &a << endl; cout << "b=" << b << endl; cout << "&b=" << &b << endl; cout << "*b=" << *b << endl; //一定要配对的使用new 和 delete。否则会发生内存泄露 int *c = new int(100); cout << "*c=" << *c <<endl; delete c; int *d = new int[2]; d[0] = 1; d[1] = 3; cout << d << endl; cout << *(d+1) << endl; delete [] d; } //测试地址符号 void test_address() { int a = 100; int b = 200; cout << &a << endl; cout << &b << endl; } //测试参数传递 void test_param(int a, people p) { cout << "invoke test_param ()" << endl; a = 100; p.age = 100; cout << "a=" << a << " p.age=" << p.age << endl; } void test_enum() { color b; b = blue; cout << b << endl; switch (b) { case red: cout << red << endl; break; case yellow: cout << yellow << endl; break; case blue: cout << blue << endl; break; case green: cout << green << endl; break; case perpul: cout << perpul << endl; break; default: cout << "default" << endl; } } void test_union() { num n; n.int_val = 1; cout << n.int_val << endl; n.long_val = 100; cout << n.int_val << endl; //会把int_val的值替换,因为公用一段内存 n.double_val = 111.2; cout << n.int_val << endl; } void test_struct() { people p; p.name = "aaa"; p.age = 15; people p2 = { "bbb", 20 }; cout << p.name << " " << p.age << endl; cout << p2.name << " " << p2.age << endl; people p3[2] = { { "ccc", 1 }, { "ddd", 2 } }; cout << p3[0].name << " " << p3[0].age << endl; cout << p3[1].name << " " << p3[1].age << endl; } void test_string() { const int SIZE = 15; char name1[SIZE]; cout << "what is your name?" << endl; cin >> name1; cout << strlen(name1) << sizeof(name1) << name1 << endl; char name2[SIZE] = "C++owboy"; name2[3] = '\0'; cout << name2 << endl; string str = "abcdedf"; str[2] = '\0'; cout << str << str.size() << endl; } void test_array() { int array[3]; array[0] = 1; array[1] = 2; array[2] = 3; cout << array[0] << array[1] << array[2] << endl; int aaa[3] = { 4, 5, 6 }; cout << aaa[0] << aaa[1] << aaa[2] << endl; char bbb[5] = { 'a', 'a', 'a', 'a', 'a' }; char ccc[5] = { 'b', 'b', 'b', 'b', '\0' }; cout << bbb << endl; cout << ccc << endl; } void bbb() { int n_int = INT_MAX; short n_short = SHRT_MAX; long n_long = LONG_MAX; cout << "int is " << sizeof(int) << " bytes" << endl; cout << "short is " << sizeof(short) << " bytes" << endl; cout << "long is " << sizeof(long) << " bytes" << endl; cout << "maximum values" << endl; cout << "int :" << n_int << endl; cout << "short:" << n_short << endl; cout << "long :" << n_long << endl; } int aaa(int n, int m) { int result = 0; if (n <= 1) { result = 0; } else { result = (aaa(n - 1, m) + m) % n; } return result; }