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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

發(fā)布時(shí)間:2025/6/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、二維數(shù)組
    • 1、二維數(shù)組聲明及初始化
    • 2、二維數(shù)組遍歷
    • 3、二維數(shù)組排序
  • 二、完整代碼示例





一、二維數(shù)組



前幾篇博客中 , 介紹的是指針數(shù)組 ;

指針數(shù)組 的 結(jié)構(gòu)特征 是 , 數(shù)組中的每個(gè)元素 , 即每個(gè)指針變量 可以 指向不同大小的 內(nèi)存塊 ;

二維數(shù)組 與 指針數(shù)組 的結(jié)構(gòu)不同 , 二維數(shù)組 的 內(nèi)存結(jié)構(gòu) 是整齊的連續(xù)的 內(nèi)存塊 , 每個(gè) 一維指針 指向的內(nèi)存塊 的大小都是相同的 , 并且這些內(nèi)存塊 還是連續(xù)的 ;


1、二維數(shù)組聲明及初始化


二維數(shù)組聲明及初始化 :

// I. 二維數(shù)組char array[4][10] = {"abc", "123", "258", "sfd"};

2、二維數(shù)組遍歷


二維數(shù)組遍歷 :

// II. 打印二維數(shù)組中的字符串for(i = 0; i < num; i++){// 使用數(shù)組下標(biāo)形式訪問printf("%s\n", array[i]);// 使用指針訪問//printf("%s\n", *(array + i));}

3、二維數(shù)組排序


二維數(shù)組排序 : 對(duì)二維數(shù)組進(jìn)行排序 , 不能單純的交換指針指向 , 二維數(shù)組是一塊整體連續(xù)的內(nèi)存 , 必須對(duì)內(nèi)存中存儲(chǔ)的實(shí)際數(shù)據(jù)進(jìn)行整體位置交換 ;

// III. 二維數(shù)組排序// 對(duì) 指針數(shù)組 進(jìn)行排序 , 排序依據(jù)是 指針 指向的數(shù)據(jù)對(duì)比for(i = 0; i < num; i++){for(j = i + 1; j < num; j++){// 核心邏輯 : 如果 array[i] 大于 array[j]// 就交換兩個(gè)元素if(strcmp(array[i], array[j]) > 0){// 交換 i, j 位置的指針指向的內(nèi)存數(shù)據(jù)strcpy(tmp, array[i]);strcpy(array[i], array[j]);strcpy(array[j], tmp);}}}



二、完整代碼示例



完整代碼示例 :

#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {// 循環(huán)控制變量int i = 0, j = 0;// 二維數(shù)組中的一維數(shù)組個(gè)數(shù)int num = 4;// 排序時(shí) , 交換指針變量時(shí)的臨時(shí)變量 , 存儲(chǔ)指針指向的內(nèi)存所存儲(chǔ)的數(shù)據(jù)char tmp[10];// I. 二維數(shù)組char array[4][10] = {"abc", "123", "258", "sfd"};// II. 打印二維數(shù)組中的字符串for(i = 0; i < num; i++){// 使用數(shù)組下標(biāo)形式訪問printf("%s\n", array[i]);// 使用指針訪問//printf("%s\n", *(array + i));}// III. 二維數(shù)組排序// 對(duì) 指針數(shù)組 進(jìn)行排序 , 排序依據(jù)是 指針 指向的數(shù)據(jù)對(duì)比for(i = 0; i < num; i++){for(j = i + 1; j < num; j++){// 核心邏輯 : 如果 array[i] 大于 array[j]// 就交換兩個(gè)元素if(strcmp(array[i], array[j]) > 0){// 交換 i, j 位置的指針指向的內(nèi)存數(shù)據(jù)strcpy(tmp, array[i]);strcpy(array[i], array[j]);strcpy(array[j], tmp);}}}// IV. 打印二維數(shù)組中的字符串printf("\nSort:\n");for(i = 0; i < num; i++){// 使用數(shù)組下標(biāo)形式訪問printf("%s\n", array[i]);// 使用指針訪問//printf("%s\n", *(array + i));}// 命令行不要退出system("pause");return 0; }

執(zhí)行結(jié)果 :

總結(jié)

以上是生活随笔為你收集整理的【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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