c - 指针初始化

标签 c

char *p = "a"; 有效但 int *p = 2;char *p = 'a'; 为什么要这样设计?

最佳答案

"" 中的任何内容在 C.So 中都被视为字符串

char *p = "a" 表示您正在将字符串的基地址传递给 char 指针。这是有效的。

int *p 表示 p 是一个指向整数的指针,所以 p 可以保存一个指向整数的地址,所以 int *p = 2 无效。

类似地,char *p 是指向字符的指针,所以 p 可以保存字符的地址,所以 char *p = 'a' 不是有效,因为 'a' 只是一个字符,而不是字符地址。

关于c - 指针初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429605/

相关文章:

c - 如何将字符指针传递给函数

mysql - 升级到 5.6 后找不到 mysql/mysql.h

c - 在 C 中使用 SOAP_ENV__Header 设置 soap header

c - c中数组的大小

c++ - 将原始内存写入文件

c - Clang 中的结构填充警告

c - 使用 gSOAP 的相互 SSL 身份验证

使用 C 中的 tokyo Cabinet 按值自定义排序

java - 如何将crc16 C实现转换为java?

c - 生产者消费者信号量线程安全