<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      你的曉白吖

      博客園 首頁(yè) 新隨筆 聯(lián)系 訂閱 管理

      注:通過(guò)xshell實(shí)現(xiàn)對(duì)liunx系統(tǒng)等的遠(yuǎn)程鏈接

      c語(yǔ)言數(shù)組

      1.

      一維數(shù)組的初始化和遍歷

      初始化的方法:

       ①全部初始化          //例 int  a[8]={1,2,3,4,5,6,7,8};

       ②局部初始化     //   例: int  a[10]={0,1,2,3,4,5,6,7}

      ③全部初始化不指定下標(biāo),系統(tǒng)根據(jù)元素個(gè)數(shù)自動(dòng)確定大小     //  例:  int a[]={1,2,3,4,5,6,7,8,9}    則相當(dāng)于a[9]

      注:局部初始化沒(méi)有賦值的元素自動(dòng)賦值為0

      數(shù)組大小等于 數(shù)組內(nèi)元素個(gè)數(shù)*數(shù)組類(lèi)型

      數(shù)組內(nèi)元素個(gè)數(shù)=數(shù)組大小/數(shù)組第一個(gè)元素   (變相求個(gè)數(shù),通過(guò)sizeof實(shí)現(xiàn))

      如果在數(shù)組內(nèi)部定義一個(gè)數(shù)組不去初始化,那么每一個(gè)元素都是初始值

      int  a[5]={0};       相當(dāng)于把a(bǔ)中的五個(gè)元素全部定義為0 

      一維數(shù)組的遍歷

      for(i=0;i<sizeof(數(shù)組名)/sizeof(數(shù)組里第一個(gè)元素如a[1]);i++)

      printf("%d  ",a[i]);

      for循環(huán)遍歷

      sizeof求數(shù)組大小

      putchar(10):向終端輸出一個(gè)ASCII碼為10的字符,換行

       注意:數(shù)組序數(shù)從0開(kāi)始,所以最大編號(hào)為n-1,即a[10]第一個(gè)元素為a[0],最后一個(gè)元素為a[9]

      排序:

      冒泡排序

      別名交換排序,從一邊開(kāi)始從小到大或者從大到小比較,滿(mǎn)足規(guī)則就進(jìn)行交換,(規(guī)則基本上為大于或小于)

      需要兩個(gè)for循環(huán)

      for 大循環(huán),控制整體比較多少次

      for 小循環(huán),控制本次比較中,進(jìn)行多少次比較/交換

      循環(huán)內(nèi)部:一個(gè)數(shù)比它后一個(gè)數(shù)大/小時(shí),交換可以選擇新建一個(gè)元素n暫時(shí)存放數(shù)據(jù),或者見(jiàn)下

      sizeof(數(shù)組名)/sizeof(數(shù)組名[第一個(gè)元素])

       

       

       

       

       二維數(shù)組:

      存儲(chǔ)類(lèi)型,數(shù)據(jù)類(lèi)型,數(shù)組名,下標(biāo)兩個(gè)[行數(shù)][列數(shù)]

      命名規(guī)則:

       int a[3][4];

      遍歷需要兩個(gè)for循環(huán) 

      外循環(huán)控制行數(shù) ,內(nèi)循環(huán)控制列數(shù)

      按行存儲(chǔ),沒(méi)有初始化的自動(dòng)補(bǔ)0

      相當(dāng)于n個(gè)行的集合

      列數(shù)必須寫(xiě),行數(shù)可以不寫(xiě)

       不寫(xiě)行數(shù)計(jì)算機(jī)會(huì)想辦法自動(dòng)識(shí)別,不寫(xiě)列數(shù)計(jì)算機(jī)無(wú)法判斷到底有幾行

      遍歷循環(huán)外層控制行數(shù),內(nèi)層控制列數(shù)

       

      三:字符數(shù)組,字符串

      字符串本質(zhì)也是一個(gè)字符數(shù)組

       字符數(shù)組:數(shù)組里每一個(gè)元素都是字符

       

      字符串的逆序:

       實(shí)現(xiàn)原理如下:

       向一個(gè)字符串插入數(shù)據(jù):

       

       

      指針對(duì)字符串的處理

      字符串函數(shù)(系統(tǒng)提供的)

      ①: 為什么要是使用字符串函數(shù)

         一般字符串都保存在一個(gè)數(shù)組里面,但數(shù)組定義好之后,無(wú)法直接進(jìn)行整體操作,所以會(huì)借助字符串函數(shù)來(lái)對(duì)字符數(shù)組進(jìn)行操作

      直接用數(shù)組名,相當(dāng)于使用數(shù)組首地址

      而不是使用內(nèi)容

      數(shù)組如果沒(méi)有初始化,就必須寫(xiě)下標(biāo)指定大小

      常用字符串函數(shù)

      strlen  man strlen

       

      頭文件    string.h  字符串處理函數(shù)常用頭文件

      原型   size_t strlen(const char *s);  

      功能    獲取一個(gè)字符的長(zhǎng)度

      參數(shù)    s:要獲取長(zhǎng)度的字符串

      直接傳入一個(gè)字符串或者數(shù)組名均可

      只獲取字符串長(zhǎng)度,遇到\0就停止,\0不計(jì)入內(nèi)

      但sizeof會(huì)計(jì)算字符串的\0

      sizeof和strlen的區(qū)別:

      sizeof主要用來(lái)內(nèi)存空間分配大小,是關(guān)鍵詞,標(biāo)識(shí)符,

      strlen僅用來(lái)看字符串長(zhǎng)度,是一個(gè)庫(kù)函數(shù)

      一個(gè)側(cè)重長(zhǎng)度,一個(gè)側(cè)重空間

      返回值:  字符串長(zhǎng)度

      ②strcmp

      頭文件:同上

      原型:int strcmp(const char *s1,const *s2);

      功能:比較兩個(gè)字符串的內(nèi)容,大小,

      參數(shù)為要比較的兩個(gè)字符串  

      只是對(duì)兩個(gè)字符串進(jìn)行比較然后返回值,不對(duì)字符串內(nèi)容做修改

      返回值:

      0  s1和s2相等

      >0  s1大于s2,返回多少說(shuō)明s1和s2第一個(gè)不相同的字符差值是多少,<0的也是

      <0   s1小于s2

      strcmp比較的是\0之前的內(nèi)容,與字符串所在內(nèi)存空間無(wú)關(guān)

      一直比較,直到遇見(jiàn)不相同的,比較該位后立即停止,后面的不進(jìn)行繼續(xù)比較

      如果兩個(gè)字符串前面的相同,后面的一個(gè)沒(méi)了,那么會(huì)拿\0和另一個(gè)字符串比較

      strncmp  : 比較字符串前n個(gè)字節(jié)大小

      strncmp(數(shù)組1,數(shù)組2,n的值)              strcmp(a1,a2,4)即為比較a1和a2前4個(gè)字符大小

      strcpy:

      復(fù)制函數(shù)

        頭文件同上

      char *strcpy(char *dest,const char *src);

      strcpy(字符串1,字符串2)

      將字符串2 的內(nèi)容拷貝到字符串1 中

      返回值為目的字符串的首地址,

      字符串1里面就算有內(nèi)容也會(huì)被覆蓋,原字符串比復(fù)制過(guò)來(lái)的長(zhǎng)也會(huì)被覆蓋,后面的不會(huì)繼續(xù)顯示,(\0也會(huì)過(guò)來(lái))

      strncpy(只拷貝字符串2的前n位到字符串1中),但是這樣的沒(méi)有\(zhòng)0,如果字符串1原長(zhǎng)度比n長(zhǎng),仍然會(huì)顯示后面的內(nèi)容

       

      strcat()函數(shù)

         頭文件同上

      把字符串2粘到字符串1后面,需要s1足夠長(zhǎng)

      粘貼字符串2中的內(nèi)容直到遇到第一個(gè)\0

      遇見(jiàn)s1中第一個(gè)\0后開(kāi)始拼接,也就是說(shuō)字符串1和字符串2第一個(gè)\0后面的內(nèi)容都無(wú)法顯示

      但用for循環(huán)可以遍歷出來(lái)字符串1后面的內(nèi)容

      #include <stdio.h>
      #include <string.h>
      int main(int argc, const char *argv[])
      {
      char s1[32] ="hello wo\0rldadadjajdalsdkjaskdj";  //hello woabcdefg\0
      char s2[32] ="abcdefg\0higk";

      strcat(s1,s2);
      printf("s1 = %s\n",s1);
      return 0;
      }
       

       

      strcpy手動(dòng)實(shí)現(xiàn):

      原理:循環(huán)拷貝,依次裝填

       

       

                         指        針

       

        用途:

      使用程序緊湊高效

      可以有效表達(dá)數(shù)據(jù)結(jié)構(gòu)

      用來(lái)動(dòng)態(tài)分配內(nèi)存

      得到多于一個(gè)函數(shù)返回值

      概念:

      當(dāng)程序中定義一個(gè)變量之后,程序就會(huì)為這個(gè)變量分配內(nèi)存空間,我們內(nèi)存空間中每一個(gè)字節(jié)都有自己的編號(hào),將這個(gè)編號(hào)稱(chēng)之為地址,也叫作指針

      在不影響理解的情況下,有時(shí)對(duì)地址,指針,指針變量不區(qū)分,統(tǒng)稱(chēng)指針,

      最終目的:找到需要的變量

      如果前面是一種類(lèi)型,表示這是一條定義語(yǔ)句,定義一個(gè)指針變量

      *pa=&a

      地址在32位操作系統(tǒng)中占4個(gè)字節(jié),64位占8個(gè)字節(jié),不論什么類(lèi)型的指針,指向所指向的地址

      在使用時(shí),*pa=100;

      表示取指,取指針pa指向的內(nèi)存的值

         -m32   以32位編譯輸出(gcc語(yǔ)句最后面加)

      不同類(lèi)型的指針,步長(zhǎng)不一樣

       

       

       

       

      指針變量的運(yùn)算:

      是以指針變量所存的地址量作為運(yùn)算量而進(jìn)行運(yùn)算的

      實(shí)質(zhì)就是地址的運(yùn)算

      只能進(jìn)行算數(shù)運(yùn)算,關(guān)系運(yùn)算,賦值運(yùn)算

      指針變量加減表示指針變量向地址大或小的方向進(jìn)行移動(dòng),移動(dòng)n個(gè)操作空間

      指針?biāo)銛?shù)運(yùn)算符:

       

       

      兩個(gè)指針相減表示兩個(gè)地址之間的操作空間(也就是幾個(gè)元素)

      注:兩個(gè)指針做運(yùn)算必須是同類(lèi)型指針,類(lèi)型不同,無(wú)意義

      一個(gè)指針變量加減意義,乘除無(wú)法計(jì)算,沒(méi)有意義

      后置++優(yōu)先級(jí)高于前置++

      后置的結(jié)合律從左往右,

      前置和*優(yōu)先級(jí)相同,結(jié)合律從右往左

      關(guān)系運(yùn)算符:

      <  >   >= <= != --

      兩個(gè)指針變量可以通過(guò)通過(guò)關(guān)系運(yùn)算符來(lái)判斷保存地址的大小

      指向兩個(gè)不同數(shù)據(jù)區(qū)域的數(shù)據(jù)兩個(gè)指針之間進(jìn)行關(guān)系運(yùn)算,也沒(méi)有意義

      指針與一般整數(shù)變量之間的關(guān)系運(yùn)算,也沒(méi)有意義

      但是可以和0去比較是否相等

       判斷指針是否為空,一般會(huì)讓其與NULL相與

      指向地址大的指針大于指向地址小的指針

      6.2.3  賦值運(yùn)算符

      指針變量之間可以直接賦值,但是不能將一個(gè)整數(shù)賦值給指針變量,因?yàn)闆](méi)有開(kāi)辟空間

       指針賦值運(yùn)算:通過(guò)賦值運(yùn)算符將指針變量送一個(gè)地址值

      例:

      輸入一個(gè)字符串,通過(guò)指針將字符串元素翻轉(zhuǎn)

      要求:定義兩個(gè)指針,分別保存起始位置和末尾位置字符,通過(guò)交換的方式實(shí)現(xiàn)

         #include <stdio.h>
      #include <string.h>

      int main(int argc, const char *argv[])
      {
      int a[5] = {1,2,3,4,5};
      int *p = a;
      int i;
      for(i = 0 ; i < 5;i++)
      {
      //printf("%d ",a[i]);
      printf("%d ",*(p+i));
      }
      putchar(10);
      char *s = "helloworld";
      char str[32] ="hello nanjing";
      s = str;
      //printf("%s\n",s);
      for(i = 0 ; i < 10;i++)
      {
      printf("%c",s[i]);
      }
      putchar(10);
      return 0;
      }
       

      posted on 2022-01-20 20:09  你的曉白吖  閱讀(67)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产成人午夜在线视频极速观看| 精品在线观看视频二区| 亚洲sm另类一区二区三区| 99国产欧美另类久久久精品| 亚洲国产精品黄在线观看| 在线观看无码不卡av| 好紧好滑好湿好爽免费视频| 亚洲国产成人va在线观看天堂| 日夜啪啪一区二区三区| 亚洲色偷拍区另类无码专区| 国产极品尤物粉嫩在线观看| 噜噜综合亚洲av中文无码| 色多多性虎精品无码av| 色狠狠综合天天综合综合| 国产国产乱老熟女视频网站97| 久久精品国产久精国产| 在线看片免费人成视久网| 精品久久久中文字幕人妻| 午夜福利影院不卡影院| 91亚洲国产成人久久精品| 人妻va精品va欧美va| 国产av仑乱内谢| 亚洲av永久无码精品水牛影视| 18岁日韩内射颜射午夜久久成人 | 亚洲精品国模一区二区| 国产亚洲一区二区三区啪| 毛片无遮挡高清免费| 十八禁午夜福利免费网站| 日韩精品一区二区三区激| 天天摸天天碰天天添| 最近中文国语字幕在线播放| 蜜桃无码一区二区三区| 夜夜躁狠狠躁日日躁| av色蜜桃一区二区三区| 噜妇插内射精品| 国产在线一区二区不卡| 无线日本视频精品| 老熟妇老熟女老女人天堂| 日韩女同在线二区三区| 真人无码作爱免费视频| 国产精品亚洲综合一区二区|