char問題charaN和charaN有什麼區別?

2021-03-09 19:02:01 字數 2472 閱讀 9001

1樓:匿名使用者

unsigned int ab;

這樣得到的ab是一bai個du無符號整型zhi的變數,&ab是ab這個變數的dao地址,也就是一個「unsigned int *」型別的指標回。「(unsigned char*)」的意答思是強制轉換,在這裡將「unsigned int *」型別轉為「unsigned char *」型別。

可參考下面**:

unsigned int ab;

unsigned int *pui = &ab;

unsigned char *puc = (unsigned char *)pui;

2樓:匿名使用者

(unsigned char*)是為了指標強轉型別,也就是把一個其他型別的指

針轉換為一個unsigned char*。另外,&ab是取內ab變數地址的容意思。指標跟地址你基本可以認為是一個東西。

所以這句話的意思就是把變數ab的地址轉成一個unsigned char*。

不過我覺得這樣做實在不好~~

3樓:匿名使用者

指標變數的大小是不是就是unsigned char.

通用用sizeof(unsigned char*)=4個位元組來儲存一個指標變數?

把一個整型變數通過這種方式來變成一個指標變數

c語言中char*的初始化問題

4樓:匿名使用者

char *a;

a是一個字元型指標,因為賦指時沒有為a分配記憶體空間,所以a的指向是不確定的,那麼a就有可能指向記憶體的重要區域

第二種方法,scanf("%s",a);直接將輸入的字串寫入a指向的空間,所以極有可能破壞重要資料,引起系統崩潰。如果真要這麼用,要先分配空間char *a=(char *)malloc(12);

而第一種方法,a = "hi, you!";,其實在編譯器看來,先為"hi, you!"分配了一塊空間,"hi, you!

"其實是它所在的空間首地址。所以a = "hi, you!";其實是將a重新指向"hi, you!

"的空間,所以沒問題。

注意,char *a="hi,you!";和char *a; a = "hi, you!"; 是一樣的。

而不同於char *a; strcpy(a,"hi, you!");

這種是不對的,是將"hi,you!"直接複製到a的空間裡,所以也不安全

5樓:匿名使用者

第一種同樣不安全,真正安全的做法應該是這樣:

char *a="hi,you!";

6樓:匿名使用者

樓上的說法說錯的

第一種是安全的,因為它是在編譯時就為它賦值,無論字串的長短,此時的程式結構還沒有固定,它都能靈活的賦值,而不會破壞程式的結構;

第二種是在程式編譯完,執行程式時的「動態處理」,(姑且這麼稱呼它吧),所以,按照第二種方式執行時,如果字串太長,預留空間不足,便有可能破壞程式的結構。

學習程式的執行原理,你便會對這方面有一些瞭解

7樓:匿名使用者

char *a; scanf("%s",a);

我感覺不能通過編譯

char *a[n] 和char (*a)[n]有什麼區別?

8樓:哇哎西西

一、」讀「」寫「能力

char*a="abcd";此時"abcd"存放在常量區。通過指標只可以訪問字串常量,而不可以改變它。

而char a[30]="abcd";此時"abcd"存放在棧。可以通過指標去訪問和修改陣列內容。

二、賦值時刻

char*a="abcd";是在編譯時就確定了(因為為常量)。

char a[30]="abcd";是在執行時確定

三、指向地址所儲存的值不同。

對於char**p1,*p1的型別為char*型,而**p1的型別才是char型。

對於char*類指標p2,*p2就是char型。

char*a="abcd";存於靜態儲存區。在棧上的陣列比指標所指向字串快,慢。

char a[30]="abcd";存於棧上,快。

9樓:匿名使用者

由於[ ]比*優先順序要高,因此a先與[n]結合,形成a[n]形式,這顯然是陣列形式,它有n個元素。然後和*結合,*表示此陣列時指標型別的,每個陣列元素都指向一個char型的變數。

*a[n] (*a)是一個指標有n個元素,每個元素為char型。也就是a指向的物件是有4個char元素的陣列,即a是指向一維陣列的指標。因記住,此時a只能指向一個包含n個元素的一維陣列,a的值就是一維陣列的起始地址

10樓:匿名使用者

兩者的區別是char *a定義了一個指標數字,即a的每個元素都是字元陣列,也就是a是個二維陣列;而char(*a)定義的是指向*[n]的指標,也就是指向二位字元陣列的指標。

C,C 中關於char以及char陣列的問題

1.因為 iostream內部 cin cout 對char 做了特殊處理.因為c c 輸入輸出字串通常要用到char 如果直接輸出地址,就要用別的方法來輸出字串了 就不方便了.所以直接輸出地址 那裡放著的字串.3 sizeof hello 得到 字串實際長度 0 佔的一個位元組 一般用strlen...

關於c語言char的用法問題假如

char a是錯誤的,只能定義char a 任意整數 或者char a 4或者其他整數或者不填 abc 或者char a 3或者其他整數或者不填 或者char a 2或者其他整數或者不填 或者char k,j,l,a 3 char a也是錯誤的,只能定義為 char a 任意整數 首先說下第一個,以...

characater和char流的區別

println jsonstring1 如果像bai要字典的值為null,可以使du用nsnull,這樣就可以達到zhi像要的效果了 daovar dict2 dictionary dict2 name jack dict2 age 16 dict2 nickname nsnull println ...