鱼C论坛

 找回密码
 立即注册
查看: 1966|回复: 7

[已解决]带你学C e23的一个问题

[复制链接]
发表于 2017-3-9 21:05:13 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 人造人 于 2017-3-9 21:08 编辑

因为字符串就是一个地址
举个例子^_^
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         char str[] = "test";
  5.         printf("%s\n", str); // 数组名字是一个地址
  6.         printf("sizeof :%s\n", "100");
  7.         printf("%c\n", "Fishc"[0]);
  8.         printf("%p\n", "fun");

  9.         return 0;
  10. }
复制代码

  1. test
  2. sizeof :100
  3. F
  4. 01176B30
  5. 请按任意键继续. . .
复制代码

评分

参与人数 1鱼币 +2 贡献 +2 收起 理由
Hacker_Jack + 2 + 2 感谢帮助

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-9 21:42:03 | 显示全部楼层
Hacker_Jack 发表于 2017-3-9 21:20
那么是不是这样:
虽然数组指针 指向一个数组, 但是它不能指向一个指针数组
比如

char *t1[10]; // t1是数组,数组里面存储指针
char (*t2)[10]; // t2是指针,指针指向数组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-9 23:20:11 | 显示全部楼层
Hacker_Jack 发表于 2017-3-9 22:07
那为什么不行呢
显示initialization from incompatible pointer type  
t1是一个数组,我弄个t2指向它 ...

因为 t2是指针,指针指向数组

char t1[10];
char(*t2)[10] = &t1;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-9 23:22:09 | 显示全部楼层
Hacker_Jack 发表于 2017-3-9 22:07
那为什么不行呢
显示initialization from incompatible pointer type  
t1是一个数组,我弄个t2指向它 ...

char *t1[10];
char *(*t2)[10] = &t1;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 12:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表