用scanf读取字符串我有点糊涂了。我的印象是用正确的方式读取C字符串scanf()沿着…的路线(别管可能的缓冲区溢出,这只是一个简单的例子)char string[256];scanf( "%s" , string );然而,以下几点似乎也有效,scanf( "%s" , &string );这只是我的编译器(GCC),纯粹的运气,还是别的什么?
3 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
char str[]
类型char的值数组,并在内存中具有自己的地址。 类型char的值数组,其在内存中的地址与数组中的元素一样多。 包括终止空字符 '\0'
&str
,&str[0]
和 str
,它们都表示内存中相同的位置,即数组的第一个元素的地址。 str
Char*strPtr=&str[0];/声明和初始化
char *strPtr; strPtr = &str[0];
strPtr
是指向 char
strPtr
点阵 str
strPtr
是一个在内存中具有自己地址的变量。 strPtr
存储地址值的变量。 &str[0]
strPtr
内存中自己的地址不同于它存储的内存地址(内存中数组的地址,即a.k.a&str[0])。 &strPtr
表示strPtr本身的地址。
char **vPtr = &strPtr;
char **vPtr;*vPtr = &strPtr
*vPtr
指向strPtr指针 *vPtr
是一个在内存中具有自己地址的变量。 *vPtr
是存储Address&strPtr值的变量。 最后评论:你不能 str++
,str
地址是 const
,但你可以 strPtr++
- 3 回答
- 0 关注
- 1639 浏览
添加回答
举报
0/150
提交
取消