首页
社区
课程
招聘
[分享]c/c++ 指针的困惑
发表于: 2010-12-8 22:38 3673

[分享]c/c++ 指针的困惑

2010-12-8 22:38
3673
#include <stdio.h>
#include <stdlib.h>
void Item(char s[6],int c)
{
       
        int i=0;
        int j=0;
        printf("%x\n",s);
              printf("%x\n",&s);
              printf("%x\n",&s[0]);
for (i=j=0;s[i]!='\0';i++)
{
        if (s[i]!=c)
        {
                s[j++]=s[i];
        }
}
s[j]='\0';

}
void main()
{
char s[]="agooda";
int c=97;
printf("%x\n",&s);
printf("%x\n",&s);
printf("%x\n",&s[0]);
Item(s,c);
}


char数组是个地址传递,可是在函数内部打印s的地址s,&s,&s[0]的值
和函数调用前对比,发现调用后函数的内部只有&s[0]和函数调用前打印的地址一样
其他s,&s是一样。和&s[0]不一样,大家可以试试看。
不知道如何解释

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 596
活跃值: (449)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
2
在Item函数内部打印&s,是局部变量s的地址-------->这是个局部变量 不要和你传进来的数组首地址混为一谈
打印s,是局部变量s的值
打印&s[0],打印第数组一个元素的地址
2010-12-8 22:51
0
游客
登录 | 注册 方可回帖
返回
//