C 中a是char指標如果char a bcda與a 以及 a結果會有什麼不同呢

2021-04-12 07:18:52 字數 1874 閱讀 8268

1樓:莊政警

*a++和*(a++)是一抄樣的,++優先順序高於* ,所以a是和++連在一塊的,和有沒括號沒關係,因為是後++,所以a在這個表示式中的值是它的當前值,在這個表示式求值完畢後,才執行a=a+1,這個次序和優先順序是兩回事

同樣的道理*++a和*(++a)也是一回事,前++的特性使得a在這個表示式中的取值是a自增一次後的值,也就是說在表示式求值前先使得a=a+1,然後才求表示式的值

所以*a++和*(a++)一樣 都是先取a的值(就是字串中字元b的地址)然後求*a 就是'b' ,求值完成後 a+=1,a指向第二個字元c了

*++a和*(++a)一樣,先讓a增加1個單位,a+=1,a指向第二個字元了,然後取*a 就是'c'了。

開始學習時很容易把自增運算子和優先順序概念混淆,前面兩位就是

2樓:

*++a = c;

*a++ = b;

*(a++) = c

3樓:匿名使用者

*++a與*(a++)的結果是一樣的都為c,*a++結果是b

c++語言中,為啥char指標型別能賦值? 如char* a="abc";

4樓:

char* a="abc";——建立一個常字串abc,將第一個字元的地址賦給char *型指標a。這有不妥?什麼型別的指標都可以賦值,不能賦值的指標怎麼工作?

比如int a,*k=&a,*q=k;。

5樓:匿名使用者

char *a和char a一個意思

fun(char *a,char *b) { while((*b=*a)!='\0'){a++;b++;} }

6樓:匿名使用者

while((*b=*a)!='\0') //讓b指標裡的數等於a指標裡的數,當b指標的數等於'\0'時,結束回while

//上面對b指標裡的數賦值完畢後,把答a,b指標往後挪一位,當while不再繼續時就不後挪了。

7樓:程式猿3號

將a字串中的資料,拷貝到b字串中。

c語言中指標a=b與*a=*b有什麼區別

8樓:育知同創教育

a=b就是把b的地址賦給a

*a=*b就是把b的記憶體地址對應的值給a

9樓:康瑜小簧

b指標的話,b=a肯定不對。要麼*b=a,要麼b=&a,這兩種語法都

正確,但是意義不同。前者將a的值賦值給指標b所在的地址,兩個值相互不影響。後者將a的地址賦值給指標b,a和b指向同一個記憶體地址,該地址的值如果有變化,a和*b同時會變化。

c++如何判斷char *a [8]中的a[1]為空字串?

10樓:it孤鶩

strcmp(a[1],"")==0 就可以了

不能==直接判斷

void fun(char *a,char *b) { while(*a==『*) a++; while(*b==*a) {b++;a++} } 是什麼意思啊?

11樓:匿名使用者

void fun(char*a,char *b)}}這個函式應當du說是zhi沒有意義的,有輸入但dao沒輸出。

迴圈比較a指標指回向的值是否

答為*,

如果是:a地址加1,迴圈比較b指標指向的值與a指標指向的值 如果相等 a++ b++,不等退出此迴圈。

如果不是 退出迴圈,退出函式。

這樣就有一些問題,a b指標所指的字串越界

c 中的問題指標和指標加引用

值都會改變,指標傳遞 傳遞的是指標,指標地址傳遞 傳遞的是指標的地址。首先明確 指標這個變數 裡面記錄的內容 是一個地址 所以你通過指標,間接的去修改指標指向的地址內的資料和直接修改指標地址內記錄對應的資料 從結果上講是一樣的 a 將指標的地址傳入。這樣你可以更改指標儲存的東西 更改地址讓原來的指標...

C 中指標符號問題,在C 中,指標中, 符號有什麼用?應該怎麼用,謝謝了,我是初學者。

1.n p 有兩個可能。首先,class nint main 然後再一個可能就是n乘以p。2.n p表示什麼意思 n p就是取p的地址賦值給指標nn p的意思是取p的地址給n變數注意指標變數只能初始化,不能賦值給他。也就是說int p int n p 是可以的。但是分開來就是不對的了。如果你是新手的...

在c 中怎麼用memset給二維char型陣列賦值

char array 10 20 給每個char數值清零 方法一 memset array,0,sizeof array array不能是指標 方法二 for int i 0 i 10 i memset array i 0,20 剛剛沒有注意到是二維 char buf 5 10 memset buf...