我刚开始用指针,我有点困惑.我知道&一个变量的地址,它*可以在指针变量前面使用,以获取指针指向的对象的值.但是当您使用数组,字符串或使用变量的指针副本调用函数时,情况会有所不同.在所有这些内部很难看到逻辑模式.
什么时候应该使用&和*?
我对某些事情有点困惑.我的印象是,读取C字符串的正确方法与之scanf()相符
(不要介意可能的缓冲区溢出,这只是一个简单的例子)
char string[256];
scanf( "%s" , string );
Run Code Online (Sandbox Code Playgroud)
但是,以下似乎也有效,
scanf( "%s" , &string );
Run Code Online (Sandbox Code Playgroud)
这只是我的编译器(gcc),纯粹的运气还是别的什么?
我现在正在学习C中的字符串.
如何使用scanf来获取你可以做的字符串
scanf("%s",str1);
Run Code Online (Sandbox Code Playgroud)
而对于printf,你可以做到
printf("The string is %s\n", str1);
Run Code Online (Sandbox Code Playgroud)
我理解,对于scanf来说,这是因为字符串只是一个字符数组,它是一个指针,但是对于printf,你怎么能像变换int或float一样放置变量名?