- 论坛徽章:
- 0
|
本帖最后由 DNFCF 于 2011-03-25 09:37 编辑
简单的写了一代码- #include<stdio.h>
- int main(void)
- {
- char str[10]="sdfd";
- printf("&str=%p\n",&str);
- printf("&str[0]=%p\n",&str[0]);
- printf(" str=%p\n",str);
- return 0;[code]void bzero(void *dst,size_t n)
复制代码 }[/code]结果告诉我们,输出结果是一样的,我的疑问是:用bzero作为用例,其原型是:
如:这样写却会报错说参数类型不兼容:但是:- bzero(&str[0],sizeof(str));
复制代码 却是对的。
他们的值不是相同的吗?为什么会报错呢??求指点
每次当用到字符串指针时候,总是纠结着是写&str,还是str。。。。求高人为我解惑。- #include<stdio.h>
- void print(void*p) ///对比=============>>bzero(void *dst,size_t n)
- {
- printf("In print:%s\n",(char *)p);
- }
- int main(void)
- {
- char p[10]="aaaa";
- print((void *)p);//OK!=============>>bzero(p,10);//NOT OK!
- print((void *)&p);//Not OK!=========>>bzero(&p,10);//OK!
- print((void *)&p[0]);//OK!==========>>bzero(&p[0],10);//OK!
- }
复制代码 |
|