作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解以下代码中对 string2 的赋值:
#include <stdio.h>
void copy1( char * const s1, const char * const s2 ); /* prototype */
void copy2( char *s1, const char *s2 ); /* prototype */
int main( void )
{
char string1[ 10 ]; /* create array string1 */
char *string2 = "Hello"; /* create a pointer to a string */
char string3[ 10 ]; /* create array string3 */
char string4[] = "Good Bye"; /* create a pointer to a string */
我认为指针只能初始化为 NULL、0 或地址。可以直接将值赋给 char * 数据类型吗?
最佳答案
指针变量可以被赋值为NULL
(定义为0)、变量的地址或另一个指针的值。字符串文字的类型为 char[]
,普通数组类型可以衰减为指针,因此您可以将字符串文字分配给 string2
和 string4
.这与调用 print("Good Bye");
相同,您将衰减的 char*
传递给 printf。
关于可以直接将值赋给指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664926/
我是一名优秀的程序员,十分优秀!