1樓:
首先答案是:6,2,0
sizeof函式是返回陣列s的分配的空間,明顯字串有5個字元,'a','b','\0','c','d',其實"ab\0cd"後面還隱藏了一個結束符'\0',因此,陣列s會分配6個位元組的空間。
strlen函式,是統計字串的長度,不過卻是這樣統計的:首先從strlen傳進去的引數開始計數,知道遇到結束符'\0'為止,而'\0'不計算在內。因此strlen(s)的結果是2,而strlen(s+2)開始就是一個結束符,因此為0.
2樓:匿名使用者
char s="ab\0cd"
相當於char s[5];
s[0]='a'
s[1]='b'
s[2]='\0'
s[3]='c'
s[4]='d'
sizeof()函式是求記憶體空間
char字元是1位元組一個。
所以,sizeof(s)得到的是這個字元陣列 個數*一個字元佔的位元組數,也就是5*1=5;
strlen()函式是求字串長度的函式,他的入參是字串首字元的地址,那麼怎麼判斷字串到哪結束呢,便是以'\0'作為結束,\是轉義符號,\0表示空字元,表示什麼也不做,他和空格是有區別的,空格游標後移,\0 游標不動。
s表示陣列s,s表示的是陣列s的首地址,即第一個字元的地址。
所以strlen(s)就是字串"ab"的長度,即2。
s是字串首地址,即,char *,指向char型的指標,char型佔一個位元組,
所以s+2就是s+2*位元組數的地址,也就是說,指標往後移2個字元的位置。
s是首地址'a'的地址,後面移2個字元的位置即'\0'位置,也就是說字串的第1個字元就是'\0'也就是說是一個空字串,則
strlen(s+2) 的值為0
3樓:
對於char str = "abcdef";就有sizeof(str) == 7,因為str的型別是char[7],
也有sizeof("abcdef") == 7,因為"abcdef"的型別是const char[7]。
對於char *ptr = "abcdef";就有sizeof(ptr) == 4,因為ptr的型別是char*。
對於char str2[10] = "abcdef";就有sizeof(str2) == 10,因為str2的型別是char[10]。
對於void func(char sa[100],int ia[20],char *p);
就有sizeof(sa) == sizeof(ia) == sizeof(p) == 4,
因為sa的型別是char*,ia的型別是int*,p的型別是char*。
4樓:
靠,這會了真不算高人。
自己編譯一下得了
倉鼠,高人進
你再買籠子之前要確定籠子是不是已經被其他倉鼠住過了,最好洗一遍,然後給你家倉鼠洗個澡,用有香味的香皂或沐浴露,多洗幾天,然後再用這種沐浴露洗一下籠子,洗之前用開水燙一下。1.不要給他吃太多花生,寧可吃一些松子或葵花籽,花生熱量很高2.ss白天並不是都在睡覺,下午會起來活動,然後傍晚大睡,到8 9點的...
求職面試高人進
如果你面試這家公司明知道你現在的情況,那麼無論你怎樣 委婉 都是無濟於事的,招聘人員根據他所瞭解的事實自會在他心中做出對你的判斷,你怎麼說都改變不了多少。不過,一般來說每個人肯定都有優點和缺點,仔細想想都可以挖掘出幾條來的。成績平平的也可以多敘述一下其他方面的優點。不知道你說的成績指的是在校學習成績...
網上購物 高人進
因為 跟實體店鋪相比 不需要交納稅款以及店面租用費和員工僱傭費用等等 這樣使得商品的成本無形中就下降了 但是畢竟名牌還是名牌 它自身是有一些固定成本在裡面的 所以一般來說如果 的 比實體店 便宜60 以上 那麼有極大可能就是仿製品了 上的信用評價現在已經不值錢了 基本都是刷出來的 好多都是山寨 而且...