1. 程式人生 > >C語言中指向字串常量的指標與指向字串陣列的指標

C語言中指向字串常量的指標與指向字串陣列的指標

  1. char str[] = "1234567asdf";
  2. char*pstr = str;
  3. 上面是定義了一個字串陣列及一個指向這個字串陣列的指標,可以通過這個指標對陣列中的內容進行操作;
  4. 例如:*(pstr + i) = 'a';

                但是下面的情況不可以直接對陣列進行操作:

  1. char *str = "1234567asdf";
  2. 這種情況下,指標指向的內容是一個字串常量,常量是不允許被修改的,所以不可以通過這個指標對字串進行修改的操作;
  3. 即 : *(str + i) = 'a'; 是非法的;

相關推薦

C語言關鍵詞static的用法作用域

細心 錯誤 不同 color 運行程序 可能 gpo 需要 之間 一、面向過程設計中的static 轉載:http://blog.csdn.net/celerylxq/article/details/6160499 1、靜態全局變量 在全局變量前,加上關鍵字stati

C語言儲存類別、連結記憶體管理

  第12章 儲存類別、連結和記憶體管理 通過記憶體管理系統指定變數的作用域和生命週期,實現對程式的控制。合理使用記憶體是程式設計的一個要點。 12.1 儲存類別 C提供了多種不同的模型和儲存類別,在記憶體中儲存資料。 被儲存的每一個值都佔用一定的實體記憶體;C語言把這樣一塊記憶體稱為物件

c語言記憶體的動態分配釋放(多維動態陣列構建)

一. 靜態陣列與動態陣列    靜態陣列比較常見,陣列長度預先定義好,在整個程式中,一旦給定大小後就無法再改變長度,靜態陣列自己自動負責釋放佔用的記憶體。    動態陣列長度可以隨程式的需要而重新指定大小。動態陣列由記憶體分配函式(malloc)從堆(heap

C語言的隨機數(RAND SRAND 之間的關係)

#include <stdio.h> #include <stdlib.h> #include <time.h> //字串陣列的時候用 //隨機數產生函式rand與srand //rand()這個函式繫結的是一個整數 //隨機數產生器,但是

C語言整型常量的表達方式

在C語言中,整型常量可用以下三種形式表示:1. 十進位制整數,即按日常接觸的數字形式正常表達。如123、-120;2. 八進位制整數,以0開頭的數字進行表達。如0123表示八進位制數123,即(123)

C語言全域性變數的定義呼叫

1. 譚浩強 書中對‘全域性變數’的定義     在函式內定義的變數是區域性變數,而在函式外定義的變數叫做外部變數,外部變數是全域性變數。全域性變數可以為本檔案中其他函式所共用它的有效範圍從定義變數的位置開始到本原始檔結束。     建立全域性變數的作用是增加了函式間資料聯

C語言變數的作用域儲存型別

1.      全域性變數與區域性變數 任何函式或變數均只能定義一次,可宣告多次。定義在程式碼塊之內(函式塊內)的變數為區域性變數,定義在函式外部的變數為全域性變數,作用範圍是整個專案(不單單是本檔案),因此也不能在其它檔案中再次定義同名變數,函式也是如此。 2.     

C語言指向字串常量指標指向字串陣列指標

char str[] = "1234567asdf";char*pstr = str;上面是定義了一個字串陣列及一個指向這個字串陣列的指標,可以通過這個指標對陣列中的內容進行操作;例如:*(pstr +

C語言字串常量字元陣列

字串常量與字元陣列的關係在C語言中沒有專門的字串變數,如果想將一個字串存放在變數中以便儲存,必須使用字元陣列,即用一個字元型陣列來存放一個字串,陣列中每一個元素存放一個字元。例如“char a[10]="love".”

C語言學習指標遇到的問題以後的學習道路

C語言中學習指標遇到的問題與以後的學習道路 在這個指標的學習裡,我學習的可謂是相當的掙扎了。 沒有了往日學習其它章節的高效性,有的只是無窮無盡的問題與懵懂。 他就像是一層迷霧,令我捉摸不透。 首先要注意的就是指標這個概念:它指的就是地址。沒其它任何含義 然後就是指標變數這個東西,不就是加

C語言陣列指標的區別

本文是對《C語言深度剖析》一書內容的拓展,在看這本書的時候解了很多我之前的一些困惑,故在此記錄。對陣列的引用總是可以寫成對指標的引用,而且確實存在一種指標和陣列的定義完全相同的上下文環境。 但是指標和陣列還是在本質上是不一樣的。指標就是指標,指標變數在32位的系統下面是4B

指標常量常量指標指向常量指標常量小結(C/C++)

一 指標常量: int a; int *const pcb = &a; //const放在指標宣告操作符的右側 只要const位於指標宣告操作符右側,就表明宣告的物件是一個常量,且它的內容是一個指標,也就是一個地址。上面的宣告可以這麼讀,聲明瞭一個常量pcb,它

C語言指標指標陣列的理解!

指標就是地址! 概念 C語言中,允許用一個變數來存放地址,這種變數稱為指標變數。一個指標變數的值就是某個記憶體單元的地址。指標變數就是用來存放指標(地址)的變數! &運算子:求某一變數在儲存單元中的記憶體地址。 *運算子:取出指標變數所指向變數的內容,後面

C語言指標常量(*const)和常量指標(const*)的區別(很重要!!!)

參考連結:https://blog.csdn.net/qiu931110/article/details/80580295   這個哥們講的還可以,但是我想用白話在描述一下,方便理解:   const限定符作用於指標 常量指標(先常量限制符號,在指標符號,co

c語言陣列指標的區別聯絡

今天在工作中定義陣列的時候習慣性的使用char型指標後直接等於字串,但在編譯通過後執行的時候產生了段錯誤,因為著急就(整個函式程式碼還是比較多的)沒仔細看程式碼,只是抱著試試看的心態,將定義換成了陣列後等於字串的形式,居然沒有在出現段錯誤,感到很奇怪(剛乾程式設計師沒多久,

初學Linux(二)---Linux下C語言陣列指標

初學Linux(二)—Linux下C語言中的陣列與指標 在經過階段一的linux學習之後,我來到了階段二的Linux下的C語言程式設計,雖然學到目前linux下的C語言似乎跟之前學的C語言所差無幾,但是按照老師的話來說,C語言指標這塊尤為重要,而我在這一方面的

C語言指向函式的指標

1 定義和呼叫程式在編譯後,每個函式都有一個首地址(也就是函式第一條指令的地址),這個地址稱為函式的指標。可以定義指向函式的指標變數,使用指標變數間接呼叫函式。下面通過一個簡單的例子來說明:float max(float x,float y){return x>y?x:y;}float min(f

C語言字串常量到底存在哪了?

常量儲存總結 區域性變數、靜態區域性變數、全域性變數、全域性靜態變數、字串常量以及動態申請的記憶體區 1、區域性變數儲存在棧中 2、全域性變數、靜態變數(全域性和區域性靜態變數)儲存在靜態儲存區 3、new申請的記憶體是在堆中 4、字串常量也是儲存在靜態儲存區 補充說明:

C語言字串整數的相互轉換

C語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串,下面列舉了各函式的方法及其說明。 # include <stdlib.h> 將數字轉換為字串   ● itoa():將整型值轉換為字串。   ● ltoa():將長整

C語言物件的點箭頭(指標)的區別

在c++中I如果是物件,就可以通過"."來呼叫I中的成員變數。如果I是指標的話,就不能通過"."來呼叫,而只能使用"->"來呼叫。在C語言中不存在物件的概念。這種情況的出現是因為使用了結構,例如struct CandyBar{float weight;int calo