亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3187 | 回復(fù): 5
打印 上一主題 下一主題

[C] 字符串指針奇怪的用法 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-03-25 09:06 |只看該作者 |倒序瀏覽
本帖最后由 DNFCF 于 2011-03-25 09:37 編輯

簡單的寫了一代碼
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.   char str[10]="sdfd";
  5.   printf("&str=%p\n",&str);
  6.   printf("&str[0]=%p\n",&str[0]);
  7.   printf("  str=%p\n",str);
  8.   return 0;[code]void bzero(void *dst,size_t n)
復(fù)制代碼
}[/code]結(jié)果告訴我們,輸出結(jié)果是一樣的,我的疑問是:用bzero作為用例,其原型是:
如:
  1. bzero(&str,sizeof(str));
復(fù)制代碼
這樣寫卻會報錯說參數(shù)類型不兼容:
  1. bzero(str,sizeof(str));
復(fù)制代碼
但是:
  1. bzero(&str[0],sizeof(str));
復(fù)制代碼
卻是對的。
他們的值不是相同的嗎?為什么會報錯呢??求指點
每次當(dāng)用到字符串指針時候,總是糾結(jié)著是寫&str,還是str。。。。求高人為我解惑。
  1. #include<stdio.h>
  2. void print(void*p)      ///對比=============>>bzero(void *dst,size_t n)
  3. {
  4.   printf("In print:%s\n",(char *)p);
  5. }
  6. int main(void)
  7. {
  8.   char p[10]="aaaa";
  9.   print((void *)p);//OK!=============>>bzero(p,10);//NOT OK!
  10.   print((void *)&p);//Not OK!=========>>bzero(&p,10);//OK!
  11.   print((void *)&p[0]);//OK!==========>>bzero(&p[0],10);//OK!
  12. }
復(fù)制代碼

論壇徽章:
0
2 [報告]
發(fā)表于 2011-03-25 09:12 |只看該作者
這個是基本的用法吧,,,有什么奇怪的?
看教材吧

論壇徽章:
0
3 [報告]
發(fā)表于 2011-03-25 09:17 |只看該作者
本帖最后由 liwangli1983 于 2011-03-25 09:31 編輯

str的類型是char *
&str的類型是char[10] *...這么寫起來很奇怪,還是借用下typedef.
typedef char char_ten[10];
char_ten *p; 其中&str的類型和p是一致的,這樣就理解了吧

進一步來說,如果str的地址是0,那么str+1的地址是1,&str+1的地址是10

論壇徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
4 [報告]
發(fā)表于 2011-03-25 09:22 |只看該作者
我沒看懂是哪個bzero提示不兼容?

bzero(str, sizeof(str));
是肯定可以的。

如果有警告的話就強轉(zhuǎn)一下
bzero( (void *)str, sizeof(str));


有警告,看函數(shù)原型
man bzero

論壇徽章:
0
5 [報告]
發(fā)表于 2011-03-25 09:38 |只看該作者
str的類型是char *
&str的類型是char[10] *...這么寫起來很奇怪,還是借用下typedef.
typedef char ch ...
liwangli1983 發(fā)表于 2011-03-25 09:17



    謝謝。

論壇徽章:
0
6 [報告]
發(fā)表于 2011-03-25 16:08 |只看該作者
這個應(yīng)該跟數(shù)組指針相類似  數(shù)組名 和 指針之間還存在著一些區(qū)別 可能影響到尋址操作吧
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP