第四篇:C語言中指針與字符串核心知識點梳理

2020-12-09 向陽花開滿山紅

前面在講變量的時候,其中有一個特點就是變量的內存地址,即:變量在內存中實際的保存位置。這個內存地址如何獲取?它又有什麼意義?

這就涉及到本文要講到的第一個核心概念:指針。重點包括:指針處理一維數組、動態內存分配等。

C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?

這點將涉及到本文第二個核心知識點:字符串及其常規操作。重點包括:字符串處理函數、指針與字符串的關係等。

在計算機二級C語言考試中,很多題目都應用到了指針、字符串、數組、函數等很多知識點糅合在一起的考題。主要考察考生的綜合實際操作能力,實踐性很強。比如:分別統計字符串中大寫字母和小寫字母的個數。給定子函數,傳入指針參數,要求實現相應的功能。

void fun(char *s,int *a, int *b){}

備註:有關函數知識點的梳理放在下一篇(第五篇)講解。

01指針

類似於時鐘錶盤的時分秒的指針,每時每刻都會指向一個數字,表示此刻的時間。亦或是地圖,通過地圖可以確定我們當前的位置,以及需要達到的目標位置。

1、指針

具有指向性,專門存放其他變量的內存地址。

它其實也是一個變量,也有類型的區分。

2、指針運算

包含一個&和一個*,兩者為互逆運算,就像加減法、乘除法操作一樣。

&——獲取變量的內存地址,*——獲取指針所指向變量的內容。

3、指針可以做什麼?

C語言中使用指針可以:

方便地使用字符串有效地表示複雜的數據結構動態分配內存得到多於一個的函數返回值

相關焦點

  • 入門C語言中的數組,字符串常量與指針
    int q[3] = ; 要聲明對另一個文件中定義的數組的外部引用,請使用extern int a[]; 字符串常量 在C語言中,類型數組char用於表示字符串,字符串的結尾由設置為0的字節標記(也稱為NUL字符)
  • 第六篇:C語言中結構體與文件操作相關知識點梳理
    前面總結過,C語言中的基本數據類型有四種,分別是整型、浮點型和字符型;後面又講到可以保存字符串的字符數組。但這遠遠不夠實際應用的需要。這就是本文要總結的第一個核心知識點:結構體。在C語言中結構體是對數據類型的無限擴展。程式設計師可以根據需要定義各種各樣的數據類型,即:結構體。
  • C語言進階:《明解C語言:中級篇》重磅來襲!
    本書適合以下讀者閱讀:入門書中的示例程序都能看懂,但是自己寫不出來;理解數組、指針等語法,但是不知如何在程序中使用;學完入門書後找不到一本合適的書繼續學習……筆者迄今為止遇到過很多難以從C語言「新手」階段畢業的人,他們似乎都抱有下面這樣的煩惱。
  • C語言|文件指針、fopen()、fscanf()、fclose()
    參數0表示程序正常結束,非0參數通常表示不正常的程序結束C語言允許同時打開多個文件,不同文件採用不同文件指針指示,但不允許同一個文件在關閉前被再次打開如圖所示,fgets()函數用來從文本文件中讀取字符串,調用格式為:fgets(s,n,fp);其中s可以是字符數組名或字符指針(指向字符串的指針
  • C/C++編程筆記:C數組、字符串常量和指針!三分鐘弄懂它
    想弄懂C語言中數組和指針的關係嗎?這篇文章就佔據你三分鐘時間,看完你肯定會有收穫!,類型數組char用於表示字符串,字符串的結尾由設置為0的字節標記(也稱為NUL字符) 以下定義都將其數組設置為相同的值: int str1 [] = {'a','b','c','\ 0'}; int str2 [] =「 abc」; ANSI C還允許定義像
  • 漫畫:什麼是字符串匹配算法?
    讓我們來舉一個例子:在上圖中,字符串B是A的子串,B第一次在A中出現的位置下標是2(字符串的首位下標是0),所以返回 2。我們再看另一個例子:在上圖中,字符串B在A中並不存在,所以返回 -1。第二輪,我們把模式串後移一位,從主串的第二位開始,把主串和模式串的字符逐個比較:主串的第二位字符是b,模式串的第二位字符也是b,兩者匹配,繼續比較:主串的第三位字符是b,模式串的第三位字符也是c,兩者並不匹配。
  • Go語言學習筆記之字符串一
    \ fmt.Println("\nContains函數判斷字符串包含關係:") str4 := "Ajian loves python and goland" fmt.Println(str4) fmt.Println(strings.Contains(str4,"jian")) //Index 函數是返回某字符在字符串的下標,在字符串裡面返回下標,否則-1(註:返回的是首次出現的下標)
  • 先學一學Go基礎,從整型到字符串操作與類型轉換
    // 列印浮點數時,可以使用fmt包配合動詞%f,代碼如下:package mainimport (        "fmt"        "math")func main() {        fmt.Printf("%f\n", math.Pi)  //3.141593        fmt.Printf("%.2f
  • Python 工匠:使用數字與字符串的技巧
    將這些數字字面量全部放入枚舉類型中可以比較好的規避這類問題。類似的,將字符串字面量改寫成枚舉也可以獲得同樣的好處。使用枚舉類型代替字面量的好處:當然,你完全沒有必要把代碼裡的所有字面量都改成枚舉類型。 代碼裡出現的字面量,只要在它所處的上下文裡面容易理解,就可以使用它。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言常量
    第四節嵌入式開發學習C語言打下基礎。本節介紹《Linux系統中C語言常量》。常量是固定值,在程序執行期間不會改變。這些固定的值,又叫做字面量。常量可以是任何的基本數據類型,比如整型常量、浮點常量、字符常量,或字符串常量,也有枚舉常量。常量就像是常規的變量,只不過常量的值在定義後不能進行修改。
  • C語言程序設計試題1
    3.設char a='70';則變量a中(   )A.包含1個字符 B.包含2個字符 C.包含3個字符 D.是非法表示4.設long i=65539;,執行語句printf("%d",i);後的輸出結果是(   )A.-3 B.3
  • 高級語言程序設計:C語言
    他們之間有不同的差異,比如C語言是屬於較早年代使用的語言系統,目前已經很少用C語言來編寫實際應用程式的代碼了,因為在C語言的使用過程中不斷發現問題然後做更改更新完善,目前C語言已經被C++語言所取代,但是作為基礎學習從淺入深的原則,第一步還是從學習C語言開始。
  • C語言你學「廢」了嗎?
    然後你慢慢的進入老師的節奏,初識C語言 / 了解C語言的發展史,搭建C開發環境認識一個簡單的C程序 / 一般都從「Helloworld"這個簡單的C程序開始算法入門 / 算法基本概念,簡單程序結構,流程圖等基本數據類型 / 整型,浮點型,字符型運算符與表達式 / 各種運算符以及優先級,表達式和語句等簡單輸入輸出函數 / 目前主要是scanf和printf,getchar和putchar選擇
  • C語言入門經典:必背18個經典程序
    /2;i++,j--)    {  c1=c[i];c[i]=c[j];c[j]=c1;  }  printf("%s\n",c);        }  指針法:void invert(char *s){int i,j,k; char t; k=strlen(s);
  • 深入剖析go中字符串的編碼問題——特殊字符的string怎麼轉byte?
    有了前面的基礎知識和字符串是一個標準的utf8序列這一結論後我們接下來對字符串「」(如果無法展示,記住該特殊字符的unicode是\u0081)手動編碼。rune切片轉為字符串:上述代碼中utf8.EncodeRune的作用是將一個rune轉為utf8位元組序列。
  • 10個很棒的 JavaScript 字符串技巧
    我們稱一個字符序列為字符串。這幾乎是所有程式語言中都有的基本類型之一。這裡跟大家展示關於 JS 字符串的10個很棒的技巧,你可能還不知道哦?1.如何多次複製一個字符串JS 字符串允許簡單的重複,與純手工複製字符串不同,我們可以使用字符串的repeat方法。2. 如何填充一個字符串到指定的長度有時,我們希望字符串具有特定長度。
  • 《貪吃蛇遊戲編程》C語言控制臺字符界面版
    今天周末,閒來無事,看到網友的問題,需要C語言版的貪吃蛇。於是就坐下來寫一個C語言控制臺版的,開發軟體使用的是Vsual Studio 2019 。整個程序只有一個tanchishe.c文件,編譯生成tanchishe.exe,然後在Windows環境直接打開可以進入遊戲。
  • C語言字符集由字母,數字,空格,標點和特殊字符組成
    C源程序的結構特點1.一個C語言源程序可以由一個或多個源文件組成。2.每個源文件可由一個或多個函數組成。4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括號「}」之後不能加分號。6.標誌符,關鍵字之間必須至少加一個空格以示間隔。
  • C語言的幾個入門階段
    C語言,在大學裡普遍被當作第一門程式語言,用於編程入門,以及數據結構和算法的教學。雖然比C++要容易點,但因為指針的存在,C其實就是個高級的彙編:(並不是很好學,尤其是它的壓軸章節:指針。說明適應了程式語言從0開始數數,已經會使用兩層的for循環,並且會使用printf列印排序結果,適應了計算機不會選擇最大的和逆序最多的數字,而只能使用「笨辦法」的特點。2,會寫快速排序。
  • C Primer Plus怎樣高效學?C語言大神案例值得借鑑!
    為什麼這麼多人覺得C語言難?異步君根據網友的分享總結了一下:C語言本身存在一定難度C語言相比現在比較流行的java,python等語言在入門的方面顯得稍微難點,特別是裡面的C語言裡面的一些函數指針,指針函數,回調,遞歸都是善茬,覺得這個東西太難了,理解起來太抽象,而且使用起來變化莫測。