1樓:刁煊胥歆然
定義一個儲存char型變數地址的指標q,並把變數a的地址儲存到q指標中
此時q中儲存的是&a(即a在記憶體中地址)
如果在程式中出現(並不是最開始的定義指標時)的*q則表示q指標中儲存的地址所指向的變數,
在你定義的這個中*q就等於a
2樓:宓靖善密
在c語言中,char*
q=a;定義一個指向字元型別的指標q,並將它初始化為a。
這裡a一般應該是一個地址,通過*q我們就可以訪問a處記憶體的值。
示例程式如下:
#include
int main(int argc, char* argv)編譯後的執行結果如下圖所示:
3樓:李瓊範
這裡是要注意一個引數的問題,引數分為:形參與實參形參就是形式引數,也就是函式定義中的引數
實參就是實際引數,也就是函式呼叫中的引數
如int a(int a, char * b){}上面的函式定義中,函式定義括號中的引數a與b就是形式引數,也就是形參而當你在呼叫這個函式時,這個引數就是實際引數如:
int d = 32;
char * s = "hello josin";
//注意下面的函式呼叫:
a(d, s);
此時函式a的引數中d與s就是實際引數。也就是實際傳遞給函式的引數。
4樓:匿名使用者
_a是形參,因為前面有const修飾所以在子函式中,_a是不能被修改的,
所以要處理_a中的資料就要將_a的值賦給子函式裡的變數,使用這個變數來對_a中的資料進行運算,其他指標之類不用再講了吧,這裡面有個指標做形參和普通變數做形參的區別,你要了解這個區別,這個就很容易懂了。
5樓:天雲一號
char *a = (char *)_a; // 表示將變數_a進行強制型別轉換為char *型別
比如:char _a;
char *a = (char *)_a; // 就是將char型別的變數_a轉換為char *型別,並賦值給*a
6樓:檢言尉遲月明
從這個式子可以判斷a
也為指向字元型的指標,所以式子的意思是
定義一個指向字元型的指標q,並把它初始化為a,即此時q,a指向相同的字元變數
7樓:認不倒你
const void* _a // _a是一個const void *型別的變數
c語言中出現「char *a」是什麼意思?
c語言中,char*pc=(char *)&a 是什麼意思?
8樓:匿名使用者
char佔一個位元組,pc指向a中第一個位元組的地址
c語言中char *a[ ]什麼意思,他和char (*)a[ ]有什麼什麼區別?
9樓:匿名使用者
char *a表示的是陣列a是一個指向char的指標型別陣列,相當於a裡面的每一個元素都實際值都是一個指向字串的指標(即儲存某個字串的首地址)
後面這個你應該要問的是char (*a)吧,不然的話就和第一個一樣了
char (*a) [n]表示的是指向一個元素為n的字串陣列的指標,說白了就是一個陣列指標(指向陣列的指標)。這個和函式指標有點像 int (*p) (int,int),表示指向返回值為int,並且含有2個int變數的函式
10樓:凌亂心扉
兩者區別如下:
一、」讀「」寫「能力
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";存於棧上。快。
四、記憶體分配方式
記憶體分配有三種:堆區和棧區、靜態儲存區。功能不同;使用方式也不同。
1、棧:就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。
2、堆:就是那些由new或malloc分配的記憶體塊,在不適用時,要手動用delete或free來釋放記憶體區域。
3、靜態儲存區:記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個執行期間都存在。它主要存放靜態資料、全域性資料和常量。
但是,良好的程式設計習慣是:如果某動態記憶體不再使用,需要將其釋放掉,並立即將指標置位null,防止產生野指標。
11樓:匿名使用者
char *a是錯誤的,只能定義char *a[任意整數];
或者char *a[4或者其他整數或者不填]=「abc」;
或者char *a[3或者其他整數或者不填]=;
或者char *a[2或者其他整數或者不填]=;
或者char k,j,l,*a[3]=;
char (*)a也是錯誤的,只能定義為(char *)a[任意整數];
首先說下第一個,以char *a[4];為例, 這語句是定義一個指標型陣列,他的元素都是指標。指標是可以直接來指向一個字串的,用法是char *p="good。指標型陣列中每個元素都是指標,則每個元素都可以去定義一個字串或者是定義一個變數;所以如果有一個a[4][4]=; 現在就可以用char *p[4]=; 這樣的好處是節約了空間,一個陣列被定義下來後,記憶體就被分配了,如果這個陣列在後面的語句中不再使用了,那它就佔著空間,使得原始檔很大,如果使用指標陣列,就很容易解決這個問題了,因為只要讓指標陣列在指向其他的字串或者其他的一些變數 ,這樣原來的空間就被釋放了
(char *)a[4]的意思是將指標型陣列a中的元素a[4]強行轉化為char型別
12樓:狂盜一枝梅
char *a一般用於函式中形參的宣告,特別只用於一維陣列;char(*)a不明白什麼意思,難不成是將a陣列強制轉換成字元型???只是猜測,不要多想呵。
13樓:楊武威
char *a[ ]相當於char** a,是指標的指標;
char (*)a[ ] 是char型別指標陣列;
(純屬個人理解,僅供參考)
14樓:小小的
含義是一樣的。其實陣列也是指標。都是宣告瞭a這個char*型別陣列。雖然有語法錯誤,但是意思是那樣的。
15樓:匿名使用者
char* a:a首先是個陣列,陣列中的每個元素是char*型別的,也就是每個元素是一個指向char型別的指標,至於char(*)a,圓括號一般是用作強制型別轉換的,這種寫法沒有見過,編譯器應該分析不出這個語法,會報錯
16樓:快來見本大人
char *a[ ] 表示一個陣列a,陣列裡的元素型別是char *
char (*)a[ ] 表示一個指標變數a,指向的變數型別是 char 的陣列
c語言中的"*(char *)&a;"這條**是什麼意思
17樓:guxuecan劍
char* 是宣告一bai
個字元型別的指標。
比如:duchat* y;
就是宣告一個zhi指標y,這個指標指向
dao的地址上只能存
專放字元類屬型的值。
18樓:匿名使用者
a是一個型別
&a取a的地址
(char *)&a 將a地址所在位置視為字元型指標的地址*(char *)&a取a所在地址的第0個位元組的值作為版一個char返回(-128~127)
實際權上假設a是整數a是4個位元組(byte)那麼怎麼取到第0個位元組的值就是你說的這個式子
c語言裡面char *a是什麼意思a+1又是什麼
19樓:匿名使用者
char *a 定義了一個字串指標
a+1,是指a中儲存的記憶體地址加1
c語言:char*a;char*p=a;什麼意思?
20樓:zz迎風
char *a是定義一個char型指標變數a,後面緊接著char *p=a,是定義一個char型指標變數p,並且p和a指向同一個位置。指標裡好像有一個說法是什麼:定義、關聯、引用,三者有順序
21樓:李旭展
字型常量,帶星號的話a直接定義為字型常量。帶星號的p為指標變數,a也定義成字型常量
c語言中char*是什麼意思?
22樓:guxuecan劍
char* 是宣告一
個字元型別的指標。
比如:chat* y;
就是宣告一個指標y,這個指標指向的地址上只能存放字元型別的值。
23樓:浪子_回頭
意思是一個char指標。
在電腦科學中,指標(pointer)是程式語言中的一個物件,利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。
由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。因此,將地址形象化的稱為「指標」。意思是通過它能找到以它為地址的記憶體單元。
24樓:楓璽
c語言中,char* 表示字元指標型別,當其指向一個字串的第一個元素時,它就可以表示這個字串。
如char* str="learn c";中,"learn c"是長度為8的字元陣列常量,其最後一個元素是'\0',而這句代表執行的結果是將str指向了"learn c"的第一個字元'l',str後面的連續記憶體依次存放'e','a','r','n',' ','c','\0'
擴充套件資料
定義char*注意事項:
1、在程式宣告變數的時候的*,只是表明「它是一個無符號整數,這個整數指向某個記憶體地址,一次訪問sizeof(type)長度」,不要和(*)操作符混淆。
2、能將二維陣列的陣列名賦給指標陣列的陣列名,pai=arr(錯),因為兩者的型別不一致,二維陣列名的型別是指向int型的指標,而指標陣列的的陣列名是指向int *型別的指標。
25樓:匿名使用者
在c語言中「char*」是宣告一個字元型別的指標,定義資料型別,char可以定義字元有變數、陣列、指標。
例如:char *string="i love c#!"
定義了一個字元指標變數string,用字串常量"i love c#!",對它進行初始化。對字元指標變數初始化,實際上就是把字串第1個元素的地址(即存放字串的字元陣列的首元素地址)賦給string。
26樓:池曉蘭節珊
char是用來定義一個數或陣列的,就像int一樣,例如chari,就是規定i是字元型資料。一般寫成charp,s[20],表示p和s[20]都是字元型資料。就像'a',用''引住的的才是字元型資料!
而char
*p則表示字元型的指標(可以指向字串)!
27樓:冒夏萱澄致
c語言中,*
除了表示
「乘」外,還表示
「指標」的意思。
這個char
*a就是定義a為
指標型別,指向
的內容為
char
型的資料。
28樓:之從波伍潔
char表示字元的
意思。在這裡的話,因為後面的p
s是字元。
所以用char表示
29樓:牛思柔郝惠
char是字元型別
char
*p表示字元型的指標(可以指向字串)
char
s[20]
表示字元陣列,能存放20個位元組的字元
c語言中作用C語言中作用
取決於在scanf中使用還是在printf中使用。在scanf中使用,則新增了 的部分會被忽略,不會被引數獲取。例如輸入為 12 abc那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數 例如這裡的字元陣列b 在printf中使用,表示用後面的形參替代的位置,實現動態格式輸...
請問C語言中,1,請問C語言中,
是求餘數的意思,a b也就是a除以b餘幾 1 2 0餘1,那1 2 1 這裡 是取餘數的意思 1除以2 餘數就是1咯 計算步驟的話。cpu有直接的整數除法指令,商和餘數分別放在不同的暫存器裡。這些都交給編譯器了,我們不用理了 取模運算。也就是1除2的餘數?結果 1 除數是2的時候很特殊.a 2 等同...
C語言中exit怎麼用,在C語言中,exit 0 是什麼意思
exit 結束當前程序 當前程式 在整個程式中,只要呼叫 exit 就結束。return 是當前函式返回,當然如果是在主函式main,自然也就結束當前程序了,如果不是,那就是退回上一層呼叫。在多個程序時.如果有時要檢測上程序是否正常退出的.就要用到上個程序的返回值。exit 1 表示程序正常退出.返...