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

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

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

      川山甲

      追求內心的非常平靜!瞬間清空所有的雜念,達到物我兩忘!

        博客園  :: 首頁  ::  :: 聯系 :: 訂閱 訂閱  :: 管理
       
       
       思維導圖
       

       
       介紹
       
      前接上文C 雜談之 指針與數組 (一),接續往下談指針和數組。
       
       指針與數組  ——承接上文進行擴展
      你知道X = Y,在編譯運行過程中,是什么樣嗎?
       

       字符指針與函數
       
      1> 字符串是一個以'\0'結尾的字符數組。
      看一個例子:printf接受的是一個指向字符數組第一個字符的指針。

      這個例子與下面兩個代碼是一個道理.

      2> 幾個常用字符函數的編寫。

       1>>> strcat(s,t)函數,把t指向的字符復制到s指向的字符后面?——注意'\0'

      #include <stdio.h>
      #include <assert.h>

      /* strcat(ps, t): Copy the charactor pointed
      * by t append to the character pointed by s
      */
      void *strcat(char *ps, char *t){
      char *addr = ps;
      assert((ps != NULL) && (t != NULL));
      while(*ps){ /* The s point to the last character */
      ps++;
      }

      while(*ps++ = *t++){ /* Copy t append to the s*/
      }

      return addr;
      }

      int main(){
      char s[5] = "AB";
      char *t = "E";
      printf("%s\n", strcat(s, t));
      return 0;
      }

      注意:在strcat里的兩個指針ps和t,方法結束后,這兩個函數都指向'\0'后面,因為ps++操作是"先取結果,后自增"
      內存變化:

      金玉嵐

       
       
       2>>> 函數strend(s,t):字符串t出現在字符串s的尾部,返回1,否則返回0。
      strend
      int strlen(char *p){
      int iLen = 0;
      while(*p){
      iLen++;
      p++;
      }

      return iLen;
      }

      /* strend:find t in s */
      int strend(char *s, char *t){
      int sLen = strlen(s);
      int tLen = strlen(t);

      if(tLen > sLen) return 0;

      while(*s)
      s++;

      while(*t)
      t++;

      for(;tLen--;){
      if(*--t != *--s) return 0;
      }

      return 1;
      }

      int main(){
      char *s = "Hell Wold , Chuanshanjia";
      char *t = "Chuanshanjia";

      printf("%d\n", strend(s, t));
      return 0;
      }
       
       3>>> strncpy(s,t,n) 將t中前n個字符復制到s中。
      strncpy(s,t,n)
       1 #include <stdio.h>
      2
      3 int strlen(char *p){
      4 int i = 0;
      5 while(*p){
      6 p++;
      7 i++;
      8 }
      9
      10 return i;
      11 }
      12
      13 /* t中最多前n個字符復制到s中 */
      14 char *strncpy(char *s, char *t, int n){
      15 char *addr = s;
      16 if(!strlen(s) || !n) return 0;
      17
      18 int tLen = strlen(t);
      19 if(!tLen) return 0;
      20
      21 if(tLen < n)
      22 n = tLen;
      23
      24 // Move the pointer s to the last
      25 while(*++s) ;
      26
      27 while(n--){
      28 *s++ = *t++;
      29 }
      30
      31 return addr;
      32
      33 }
      34
      35
      36
      37 int main(){
      38 char s[20] = "Hell World ";
      39 char *t = "Chuanshanjia";
      40
      41 printf("%s\n", strncpy(s, t, 2222));
      42 return 0;
      43 }
       
       命令行參數
       
      1.第一個參數(常用argc表示)(:運行時命令行參數數目;第二個參數(常用argv表示)是一個指向字符串數組的指針。
      2.C語言規定,argv[0],表示啟動程序的名稱。
      3.實例

      運行結果:

       內存分配:

       

      解釋:

      >> argv是一個指向指針數組的指針。

      所以接受參數也可以寫成:

      結合上圖,我們可以這樣理解:從里向外看

       

       復雜聲明

       1.閱讀——從右向左規則。

      >> 規則符號:

      -----------------------------------------------------------

      * 讀作"指向...的指針"

      [] 讀作"...的數組"

      () 讀作"返回...的函數"

      -----------------------------------------------------------

      下面兩個示例:

      int *f() ; // f: 返回指向int型的指針

      >>步驟:

      1)找標識符f:讀作"f是..."

      2)向右看,發現"()"讀作"f是返回...的函數"

      3)向右看沒有什么,向左看,發現*,讀作"f是返回指向...的指針的函數"

      4)繼續向左看,發現int,讀作"f是返回指向int型的指針的函數"

       

      int (*pf)(); // pf是一個指針——指向返回值為int型的函數

      1)標識符pf,讀作“pf是...”

      2)向右看,發現),向左看,發現*,讀作 "pf是指向...的指針"

      3)向右看,發現"()",讀作“pf是指向返回...的函數的指針"

      4)向右看,沒有,向左看發現int,讀作"pf是指向返回int型的函數的指針"

       
       總結
       
      我最近著重看C,是因為我想深入了解一下PHP內核語言和服務器模塊開發。現在的C語言,能夠讓我更深入的了解計算機內部。

       

      posted on 2012-03-26 16:24  川山甲  閱讀(4746)  評論(7)    收藏  舉報
      主站蜘蛛池模板: 亚洲AV福利天堂在线观看| 依依成人精品视频在线观看| 亚洲中文字幕有综合久久| 国产精品亚洲二区在线看| 最新亚洲av日韩av二区| 亚洲国产av剧一区二区三区| 亚洲精品一区二区18禁| 亚洲国产日韩欧美一区二区三区 | 亚洲成av人片无码天堂下载| 99在线精品免费视频| 久青草精品视频在线观看| 九九热在线精品视频首页| 天堂一区二区三区av| 亚洲午夜激情久久加勒比| 噜噜综合亚洲av中文无码| 门国产乱子视频观看| 国产熟女一区二区三区蜜臀| 国产精品亚洲二区在线播放| 露脸叫床粗话东北少妇| 国产第一页浮力影院入口| 韩国三级在线 中文字幕 无码| 日韩深夜免费在线观看| 深夜av在线免费观看| 97免费人妻在线视频| 视频一区二区不中文字幕| 国产成人一区二区不卡| 又污又爽又黄的网站| 成人中文在线| 亚洲天堂精品一区二区| 一区二区不卡国产精品| 日本高清在线播放一区二区三区 | 国产精品激情av在线播放| 国产欧美另类精品久久久| 国产一级二级三级毛片| 亚洲精国产一区二区三区| 无码人妻一区二区三区av| 欧美粗大| 亚洲成A人片在线观看的电影| 玩弄放荡人妻少妇系列| 亚洲成年av天堂动漫网站| 国产初高中生粉嫩无套第一次|