用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,它们都表示内存中相同的位置,即数组的第一个元素的地址。 strChar*strPtr=&str[0];/声明和初始化
char *strPtr; strPtr = &str[0];
strPtr是指向 charstrPtr点阵 strstrPtr是一个在内存中具有自己地址的变量。 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 关注
- 1701 浏览
添加回答
举报
0/150
提交
取消
