应用指针时候遇到几个问题;
第一个问题:int main(int argc, char *argv[])
{
int num[SIZE];
int i;
int *p;
p=num; 这样对数组进行赋值是没有问题的
for (i=0;i<SIZE ;i++)
{
*(p+i)=i+1; 问题是我循环体改成*p=i+i; 赋值却出了问题???这是为什么呀
p++;
}
return 0;
}
第二个问题:做一个统计字符串长度的函数
#include <stdio.h>
int main(int argc, char *argv[])
{
int calculation(char *p);
char ch[5];
char *p;
p=ch;
gets(ch);//输入字符串
/*如果使用scanf()就是不能接受换行符*/
printf("%d",calculationg(p));//打印出字符串长度
return 0;
}
int calculation(char *p)//统计字符串长度的函数
{
int i=0;
while (*p!='\0')
{
p++;//输入的字符串长度超过了数组的大小,却依然可以得出正确的结果,这是怎么回事呀?
i++;
}
return i;
}
第三个问题是:
#include <stdio.h>
int main(int argc, char *argv[])
{
char *ch[2]={"ab","cd"};
printf("%c",*ch[0]); \\代码到这里执行没有问题的
*ch[0]='e';//到这里以后就出错了,我想知道为什么呀??? 我测试的方法的把代码分开进行测试
printf("%c",*ch[0]);
return 0;
}