#include<stdio.h> int main() { char str[20]; char*p=str; printf("input string:\n"); scanf("%s",p);

刚学c语言谁能告诉我,为什吗第二个和第四个printf中的(P)不带*这个符号,p不是个指针地址吗???谢谢详细点啊感激不尽!!!!!
char *p=str//是指定义一个字符指针,然后指向str[20]数组的首地址,和知简猛隐它可以表示成
//char *p;p=str;
而scanf函数需要唤裤的是存放字符串的首地址,当然就用指针p就好了啊
因为p是指针,也就是地址,而scanf函数的第二个参数就是一个地址,所以p不加*
Scanf语句内部的p所表示的是%s的参数,参数不能变为p变量
r,int m,int n)
{
int count=1;
int i=0;
char str1[10];
for(i=0;i<=strlen(str);i++)
{
if(count<m)
{
str1[i]=str[i];
count++;
}
}
}