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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序

發(fā)布時間:2025/4/16 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

指針

指針的基本概念

指針的作用: 可以通過指針間接訪問內(nèi)存

  • 內(nèi)存編號是從0開始記錄的,一般用十六進(jìn)制數(shù)字表示

  • 可以利用指針變量保存地址


指針變量的定義和使用

指針變量定義語法: 數(shù)據(jù)類型 * 變量名

#include <iostream> using namespace std; int main() {//1、指針的定義int a = 10; //定義整型變量a//指針定義語法: 數(shù)據(jù)類型 * 變量名 ;int * p;//指針變量賦值p = &a; //指針指向變量a的地址cout << &a << endl; //打印數(shù)據(jù)a的地址cout << p << endl; //打印指針變量p//2、指針的使用//通過*操作指針變量指向的內(nèi)存cout << "*p = " << *p << endl;system("pause");return 0; }



指針變量普通變量的區(qū)別

  • 普通變量存放的是數(shù)據(jù),指針變量存放的是地址

  • 指針變量可以通過" * "操作符,操作指針變量指向的內(nèi)存空間,這個過程稱為解引用


指針?biāo)純?nèi)存空間

提問:指針也是種數(shù)據(jù)類型,那么這種數(shù)據(jù)類型占用多少內(nèi)存空間?

#include <iostream> using namespace std; int main() {int a = 10;int * p;p = &a; //指針指向數(shù)據(jù)a的地址cout << *p << endl; //* 解引用cout << sizeof(p) << endl;cout << sizeof(char *) << endl;cout << sizeof(float *) << endl;cout << sizeof(double *) << endl;system("pause");return 0; }



空指針和野指針

空指針指針變量指向內(nèi)存中編號為0的空間

用途:初始化指針變量

注意:空指針指向的內(nèi)存是不可以訪問的



野指針:指針變量指向非法的內(nèi)存空間



const修飾指針

const修飾指針有三種情況

  • const修飾指針 --- 常量指針

  • const修飾常量 --- 指針常量

  • const即修飾指針,又修飾常量

  • #include <iostream> using namespace std; int main() {int a = 10;int b = 10;//const修飾的是指針,指針指向可以改,指針指向的值不可以更改const int * p1 = &a; p1 = &b; //正確//*p1 = 100; 報錯//const修飾的是常量,指針指向不可以改,指針指向的值可以更改int * const p2 = &a;//p2 = &b; //錯誤*p2 = 100; //正確//const既修飾指針又修飾常量const int * const p3 = &a;//p3 = &b; //錯誤//*p3 = 100; //錯誤system("pause");return 0; }



    指針和數(shù)組

    作用:利用指針訪問數(shù)組中元素

    #include <iostream> using namespace std; int main() {int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int * p = arr; //指向數(shù)組的指針cout << "第一個元素: " << arr[0] << endl;cout << "指針訪問第一個元素: " << *p << endl;for (int i = 0; i < 10; i++){//利用指針遍歷數(shù)組cout << *p << " ";p++;}cout<<endl;system("pause");return 0; }



    指針和函數(shù)

    作用:利用指針作函數(shù)參數(shù),可以修改實參的值

    #include <iostream> using namespace std; //值傳遞 void swap1(int a ,int b) {int temp = a;a = b; b = temp; } //地址傳遞 void swap2(int * p1, int *p2) {int temp = *p1;*p1 = *p2;*p2 = temp; }int main() {int a = 10;int b = 20;swap1(a, b); // 值傳遞不會改變實參swap2(&a, &b); //地址傳遞會改變實參cout << "a = " << a << endl;cout << "b = " << b << endl;system("pause");return 0; }



    指針、數(shù)組、函數(shù)

    案例描述:封裝一個函數(shù),利用冒泡排序,實現(xiàn)對整型數(shù)組的升序排序

    例如數(shù)組:int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };

    int * arr 也可以寫為 int arr[]

    #include <iostream> using namespace std; //冒泡排序函數(shù) void bubbleSort(int * arr, int len) //int * arr 也可以寫為int arr[] {for (int i = 0; i < len - 1; i++){for (int j = 0; j < len - 1 - i; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}} }//打印數(shù)組函數(shù) void printArray(int arr[], int len) {for (int i = 0; i < len; i++){cout << arr[i] << " ";}cout<<endl; }int main() {int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };int len = sizeof(arr) / sizeof(int);bubbleSort(arr, len);printArray(arr, len);system("pause");return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。