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 ...