日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++复习 第一部分c到c++的过度

發(fā)布時間:2025/3/19 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++复习 第一部分c到c++的过度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/*
#include <iostream>

using namespace std;

int aaaa;//不賦值 直接輸出它的值的時候,因為是全局變量 所以默認給了值 0,如果是局部變量 那么就是一個垃圾值
//在C中全局變量可以重復定義 后定義的覆蓋前面的 但是 C++不行 檢測機制更加嚴格

namespace A
{
?? ?int a = 1;
?? ?void print()
?? ?{
?? ??? ?cout << "namespace a" << endl;
?? ?}
}

namespace B
{
?? ?int a = 2;
?? ?void print()
?? ?{
?? ??? ?cout << "namespace b" << endl;
?? ?}
}

namespace C
{
?? ?namespace D
?? ?{
?? ??? ?struct test
?? ??? ?{
?? ??? ??? ?int x;
?? ??? ?};
?? ?}
}

void sin(void)
{

}
//此處第一個void 不可以省略!(C中可以)?
//第二個void 有沒有都代表 不允許傳參 在C中不寫void 代表可以接受任意多個形參

int main()
{
?? ?cout << "helloworld" << endl;//cout是輸出流對象 << 是重載了的符號 ?endl是換行

?? ?using namespace A;
?? ?cout << "a = " << a << endl;

?? ?cout << "a = " << B::a << endl;//聲明了用B中的a變量

?? ?using B::a;//優(yōu)先級更高 但是僅僅聲明 一個B里面的變量a其余的還是用A中的(下面的print函數(shù)); ::是作用域限定符
?? ?cout << "a = " << a << endl;

?? ?print();

?? ?C::D::test t;//多重嵌套的調用

?? ?for (int z = 0; z < 3; z++)//允許了在for中定義變量
?? ?{
?? ??? ?cout << "beauty" << endl;
?? ?}

?? ?register int aa;
?? ?cout << "a的地址是 " << &aa << endl;//這時候給的地址是在內存中隨機分配的一個地址
?? ?//因為本來寄存器變量是不存在地址的?
?? ?//但是G++默認這種取地址行為是可以的 所以自動給你分配了一個內存地址

?? ?int a1 = 1, b1 = 2;
?? ?(a1 > b1) ? a1 : b1 = 10;
?? ?//作為一個三目運算符 在C++中的運算結果 返回的是變量 b1
?? ?//所以可以對其賦值
?? ?cout << "b1 = " << b1 << endl;
?? ?//但是在C中三目運算符 運算結果 返回的是 數(shù)值常量 2,所以不可以進行賦值


?? ?cin.get();//等待一個輸入再退出程序 也可以用system("pause"); 多+一個 #include <windows>
?? ?return 0;
}
*/


/*
//有關const
#include <iostream>

using namespace std;

int main()
{
?? ?const int a = 1;//這里的a = 1 存在符號表中(恒定不變的對應關系)
?? ?int *p = (int *)&a;// 這里取地址a 再取值 是將 a對應的值:1 賦值給 p

//a本身沒有地址 強行取地址系統(tǒng)就給它分配了一個地址 讓p指向這個地址 而已

? *p = 3;//再將p中的 值:1 ?改為3

?? ?cout << "*p = " << *p << "\n a = " << a << endl;
?? ?cin.get();
?? ?return 0;
}
*/


//const 與 define 區(qū)別 :作用域不一樣
//const是局部變量 僅在函數(shù)內有效 define 是宏 該行向下都有效
/*
#include <iostream>

using namespace std;

void print()
{
?? ?const int a = 1;
?? ?#define b 1
?? ?cout << "a = " << a << endl;
?? ?cout << "b = " << b << endl;
}


int main()
{
?? ?print();
?? ?//cout << " main a = " << a << endl;//這就會報錯 因為 a是局部變量
?? ?cout << " main b = " << b << endl;
?? ?cin.get();
?? ?return 0;
}
*/

/*
//int & a = b 代表著給b取一個別名 叫做a
//例子:
#include <iostream>

using namespace std;

void swap(int *a, int *b)
{
?? ?int tem = *a;
?? ?*a = *b;
?? ?*b = tem;
}

void swap(int &x, int &y)//這里的& 在定義的過程中代表著取別名 給傳過來的a/b區(qū)別名為x/y
{
?? ?int tem = x;
?? ?x = y;
?? ?y = tem;
}
int main()
{
?? ?int a = 1, b = 2;
?? ?swap(&a, &b);
?? ?cout << " ? ? a = " << a << " ? ? ?b = " << b << endl;

?? ?swap(a, b);
?? ?cout << "別名 a = " << a << " 別名 b = " << b << endl;

?? ?cin.get();
?? ?return 0;
}
*/

/*
//研究引用是否占用空間
#include <iostream>

using namespace std;

struct test
{
?? ?int &a;
?? ?int &b;
};

struct test1
{
?? ?char &a;
?? ?char &b;
};
//這里的int & 和char &都是常指針 所以都占四個字節(jié)大小
//和 int a[10] = {0}; 中的 a 所代表的一樣 ?a 也是常指針
//a++ 是不允許的 因為 a 所代表的數(shù)組的首地址是固定的 不可以修改(a++ 等價于 a = a+1)

int main()
{
?? ?int a = 1;
?? ?char b = 'i';
?? ?int &c = a;
?? ?char &d = b;
?? ?//這里的int& char& 都是引用 代表對應的 a ,b 的數(shù)據(jù)類型 所占空間大小

?? ?cout << "sizeof(c) = " << sizeof(c) << endl;
?? ?cout << "sizeof(d) = " << sizeof(d) << endl;
?? ?cout << "sizeof(test) = " << sizeof(test) << endl;
?? ?cout << "sizeof(test1) = " << sizeof(test1) << endl;

?? ?cin.get();
?? ?return 0;
}
*/

//指針的引用
/*
#include <iostream>
#include <cstring>
#pragma warning (disable:4996)//注意:因為vs2013版本級以后不支持strcpy這個函數(shù) unsafe加這個去除警告(error
using namespace std;

void initMemory(char *&ptr)
{
?? ?ptr = (char *)malloc(100);
}

int main()
{
?? ?char *str = NULL;
?? ?initMemory(str);
?? ?strcpy(str,"hello");
?? ?cout << "str = " << str << endl;
?? ?
?? ?cin.get();
?? ?return 0;
}
*/

//常引用的初始化相關

/*
#include <iostream>

using namespace std;

int main()
{
?? ?const int &a = 1;//可以用常量初始化常引用
?? ?//int &a = 1;//不允許用常量初始化引用

?? ?int *p = (int *)(&a);
?? ?(*p)++;
?? ?cout << "a = " << a << endl;


?? ?cin.get();
?? ?return 0;
}
*/

/*
#include <iostream>

using namespace std;

int add(int a,int b = 0,int c = 0)//默認參數(shù) 放在最后 沒有提供數(shù)值的時候 默認使用默認參數(shù)的值
{
?? ?return (a + b +c);
}
int main()
{
?? ?int result = 0;
?? ?result = add(1,2);
?? ?cout << "add( 1 , 2) = " << result << endl;
?? ?cin.get();
?? ?return 0;
}

*/

/*
#include <iostream>

using namespace std;

int add(int a, int b = 0, int c = 0, int = 0,int ?= 0)?? ??? ??? ??? ?
{
?? ?return (a + b + c);
}
//默認參數(shù) 放在最后 沒有提供數(shù)值的時候 默認使用默認參數(shù)的值
//最后兩個是占位參數(shù) + 默認參數(shù) 方便程序員 以后修改程序
//占位參數(shù) 就是最后 ,int ,int 留給后期修改程序時 能夠添加參數(shù) 不過調用函數(shù)需要提供足量實參?
int main()
{
?? ?int result = 0;
?? ?result = add(1, 2);
?? ?cout << "add( 1 , 2) = " << result << endl;
?? ?cin.get();
?? ?return 0;
}
*/
/*
#include <iostream>

using namespace std;

int add(int a, int b)
{
?? ?return a + b;
}

float add(float a, float b)
{
?? ?return a + b;
}

int main()
{
?? ?int a = 1;
?? ?int b = 2;
?? ?float c = 1.1;
?? ?float d = 2.0;

?? ?cout << "add(a, b) = " << add(a, b) << endl;
?? ?cout << "add(c ,d) = " << add(c, d) << endl;
?? ?cin.get();
?? ?return 0;
}
*/

//函數(shù)指針指向重載函數(shù)
#include <iostream>

using namespace std;

int add(int a, int b)
{
?? ?return a + b;
}

float add(float a, float b)
{
?? ?return a + b;
}

int main()
{
?? ?int a = 1;
?? ?int b = 2;
?? ?float c = 1.1;
?? ?float d = 2.0;

?? ?cout << "add(a, b) = " << add(a, b) << endl;
?? ?cout << "add(c ,d) = " << add(c, d) << endl;

?? ?int(*p)(int, int);//函數(shù)指針指向函數(shù)add(int型的)
?? ?p = add;
?? ?p(2 , 3);

?? ?float(*q)(float, float);//同上
?? ?q = add;
?? ?q(2.1, 3.1);

?? ?cin.get();
?? ?return 0;
}

總結

以上是生活随笔為你收集整理的C++复习 第一部分c到c++的过度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。