c語言中a是什麼意思翱和陣列用法嗎

2021-04-18 01:50:37 字數 6304 閱讀 3987

1樓:克魯伊夫式轉身

*a=i,就是bai說將i的值賦予*a,使指標

dua指向的地址中存入i的值。*n=*n+1也很好理解,比如指標zhin指向的地中之前dao存入的

回值為5,則上式的意答思就等同於*n=5+1,指標n指向的地址中將存入數值6。a++的意思就是a指向的地址向後移一位。比如之前a指向陣列b[0]的地址,則之後將指向b[1]。

2樓:匿名使用者

1、這是一個指標變數

2、和陣列不一樣,陣列可以根據陣列下標查詢資料,指標取值要加地址偏移量

3樓:安若曦在路上

若定義:int *a=null;

則*a表示一個整形的指標變數,並對其進行初始化。

int arry[10]=;

陣列名arry也相當於一個指標。內

兩者基本可以容

看做相同。

4樓:千島j玉葉

這是個呼叫函抄數,沒有返回值,

先是把襲兩個地址賦bai值給a和n,du

*a是一個指向整zhi數型別的指標變數,*a=i就是dao把i得值賦值給*a,

*n=*n+1;就是把*n得值加1再賦值給*n;

a++;這個語句就是把a的值加1再使用

5樓:匿名使用者

int *a表示a是一個抄指標,或者也可以是一個陣列名,你可以理解為陣列

既然a是指標,那麼在指標前面加*號表示對該指標所指向的地址取值

所以*a=i;就是把i的值賦值給a指標所指向的地址的值,說起來有些拗口,其實就是說改變了a這個地址記憶體的值

*n=*n+1;也是一個道理,表示n指向的地址的值加1

a++;表示a地址加1,就是說本來a指向0x0000,那麼現在就變了,a會指向另外一個地址,那麼這個地址對應的值也會相應的改變。

建議:先找一本c語言的書,把指標一章的基本概念多理解一下,這些都是基礎的東西,需要多體會。

6樓:匿名使用者

*a表示指標;

除了定義階段,*a和a[0]是一樣的

7樓:匿名使用者

1. 定義陣列

int a[10]

a既是陣列的名字,也是陣列的地址,相當與從a這個地址連續專分配了10個int記憶體地址

2.我們可

8樓:匿名使用者

你看一下「c程式設計」的」指標」一章

c語言:陣列,*a和&*a有什麼區別?

9樓:

c語言, 指標才有 *a 形式,普通的變數沒有 *a 形式。

c語言 沒有 「引用」,c++ 裡才有 「引用」形式c語言, 指標沒有 &a 形式, 普通的變數才有 &a 形式.

c語言,陣列:a, 沒有你給的 &*a 形式,但可以有 *&a 形式.

例如:int a=;

printf("%d ",*&a[1]);

這裡 的 *&a[1] 相當 *(&a[1])&a[1] -- 算出a[1]的地址

*(a[1]的地址) -- 取出 a[1]地址單元裡的值,就是 a[1]

所以列印出 數值 2。

10樓:科技鳥

因為&是一個引用符號,&*a是對*a的引用,被引用的物件和引用的物件所在的記憶體地址一樣,值當然也一樣。

二樓說對了,c++可以用引用,c只能傳指標。

c語言中陣列指標*a[]與a[]有啥區別?

11樓:匿名使用者

第一個a中有2個符號,所以要看優先順序,看限於誰結合。已知比*優先所以版第一個a先與

權結合,所以a是一個陣列,陣列中的元素都是指標a就單單表示陣列。

例子:char *a; //a是陣列,元素都是char * (即指標)

char a; //a是陣列,元素都是char (即字元)

12樓:匿名使用者

*a 這個為指標陣列,int *a[5];就定義了一個大小為5的指標陣列,a[0]-a[4]可以指向不同的int;

a這個就是一個普通陣列。

c語言中strlen(s)是什麼意思?s是一個陣列!

13樓:匿名使用者

strlen(s)表示求字串s的長度。

strlen函式原型:int strlen(char *s);

標頭檔案:string.h

格式:strlen (字元陣列名)

功能:計算給定字串的(unsigned int型)長度,不包括'\0'在內

說明:返回s的長度,不包括結束符null。

參考**:

#include

#include

int main()

/*執行結果:

goldenglobalview has 16 chars*/

14樓:匿名使用者

strlen是c語言標準庫提供的一個函式,給你提供strlen的一個版本,你就明白其中的s是什麼意思了。

size_t strlen(const char *s)

15樓:23歲的九局下半

strlen(s):通常用來計算字串s的長度如:char s[256];

memset(s,'\0',sizeof(s));

strcpy(s,"12345678");

那麼strlen(s)的結果為:8

16樓:阿嚦噶禱

求這個字元數字的長度,是標準庫函式,可以去查一下c標準庫給出的函式介面

17樓:匿名使用者

那s一定是個char的陣列。具體來說,s是一個陣列的首地址。

strlen(char*)的形參只能是指標。

18樓:月夜黑鷹

s真正佔用的記憶體打下,不是陣列

19樓:_小_凡

strlen()

為計算字串長度

s 是字串

20樓:大野瘦子

strlen(s)表示求字串s的長度。

strlen(s):通常用來計算字串s的長度如:char s[256];

memset(s,'\0',sizeof(s));

strcpy(s,"12345678");

那麼strlen(s)的結果為:8

c語言strlen()函式用法

標頭檔案:#include

strlen()函式用來計算字串的長度,其原型為:unsigned int strlen (char *s);  s為指定的字串

eg:#include

#include

int main()

執行結果:

strlen(str1)=38, sizeof(str1)=4strlen(str1)=45, sizeof(str1)=100strlen(str1)=53, sizeof(str1)=5

c語言中char *a[ ]什麼意思,他和char (*)a[ ]有什麼什麼區別?

21樓:匿名使用者

char *a表示的是陣列a是一個指向char的指標型別陣列,相當於a裡面的每一個元素都實際值都是一個指向字串的指標(即儲存某個字串的首地址)

後面這個你應該要問的是char (*a)吧,不然的話就和第一個一樣了

char (*a) [n]表示的是指向一個元素為n的字串陣列的指標,說白了就是一個陣列指標(指向陣列的指標)。這個和函式指標有點像 int (*p) (int,int),表示指向返回值為int,並且含有2個int變數的函式

22樓:凌亂心扉

兩者區別如下:

一、」讀「」寫「能力

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,防止產生野指標。

23樓:匿名使用者

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型別

24樓:狂盜一枝梅

char *a一般用於函式中形參的宣告,特別只用於一維陣列;char(*)a不明白什麼意思,難不成是將a陣列強制轉換成字元型???只是猜測,不要多想呵。

25樓:楊武威

char *a[ ]相當於char** a,是指標的指標;

char (*)a[ ] 是char型別指標陣列;

(純屬個人理解,僅供參考)

26樓:小小的

含義是一樣的。其實陣列也是指標。都是宣告瞭a這個char*型別陣列。雖然有語法錯誤,但是意思是那樣的。

27樓:匿名使用者

char* a:a首先是個陣列,陣列中的每個元素是char*型別的,也就是每個元素是一個指向char型別的指標,至於char(*)a,圓括號一般是用作強制型別轉換的,這種寫法沒有見過,編譯器應該分析不出這個語法,會報錯

28樓:快來見本大人

char *a[ ] 表示一個陣列a,陣列裡的元素型別是char *

char (*)a[ ] 表示一個指標變數a,指向的變數型別是 char 的陣列

一個二維陣列,a和*a有什麼區別,c語言

29樓:匿名使用者

你可以把二維想象成xy座標。

a在xy座標的角度看待指標的指向的

而*a是在x座標的角度看待指標的指向的

雖然他們都是指向原點

為什麼c語言中二維陣列的陣列名a和*a表示的是同一個值?

30樓:匿名使用者

當定義二維陣列a[m][n]時,陣列名可以認為是二維指標,其指向二維陣列的首地址。

於是a的值就是首地址的值。

而*a,就是a[0],a[0]是第一行的標記,代表第一行的首地址。

在二維陣列中,所有元素都是緊密排列的,這樣整個陣列的首地址,第一行的首地址,和第一個元素的首地址,即a, a[0], &a[0][0] 都是相同的。

於是a和*a的值是相同的。

c語言中字串和陣列的區別,C語言中字串和陣列的區別

這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...

c語言中dt什麼意思C語言中t是什麼意思?

c語言中 d 是格式字元,意思是資料以十進位制整數形式輸出 t 是轉義字元,意思是水平製表 跳到下一個tab位置 在c語言中還有其它格式字元,o 意思是以八進位制整數形式輸出 x 意思是以十六進位制整數形式輸出 c 意思是以字元形式輸出 s 意思是以字串形式輸出。等等 在c語言中還有其它轉義字元,n...

c語言中fun是什麼意思,C語言中funa,b是什麼意思

就是個自定義標抄識符,通常用襲作自定義函式bai的函式名,是函式dufunction這個詞的開頭字zhi母。通常舉dao例子的時候,不知道該叫什麼名了,就取名fun或func或function。前幾年我回答過這種問題,結果題主採納的是一幫胡扯答案的。這次我就看看還有沒有睜眼說瞎話胡扯的。c語言中fu...