c语言指针输入

Python05

c语言指针输入,第1张

看来楼主没有理解指针必须要初始化这一定律啊。

char

*str

str="l

love

china"

指针

str

是指向字符的,也就是指向了一个地址

赋值为str="l

love

china"

这里指针str的值也就是字符串

"l

love

china"

的首地址

而输出的时候puts(str)

puts中的参数当然也是首地址了,如果puts的参数是字符数组,那实际上也是地址,因为数组的名字就是数组第一个元素的地址。当地址是字符串的地址时,指针会自动下移一个位置。直到遇到'\0'为止

而下面这个

char

*str

scanf("%s",str)

指针没有初始化,所以是不对滴。

其实在C语言中想要动态输入字符串(也就是不浪费空间,还是很麻烦的),直到怎么回事就行,不必太纠结这个问题

第二种情况指针p和q都是野指针,只想内存位置不定,修改为

   char *p=(char *)malloc(sizeof(char)*100)

   char *q=(char *)malloc(sizeof(char)*100)

   gets(p)

   gets(q)

呵呵,这样子写不对,你要先给name和phone分配一些空间才能往里面填东西,比如像这样:

char

name[100]

char

phone[100]

printf("请输入姓名和电话(姓名

电话)")

scanf("%s

%s",&name,&phone)