鱼C论坛

 找回密码
 立即注册
查看: 1507|回复: 1

[作品展示] S1E22:指针和数组

[复制链接]
发表于 2023-10-5 20:30:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 BaysideLizard 于 2023-11-14 22:22 编辑
  1. #include <stdio.h>
  2. #include <string.h>
  3. //DNX写于2023年10月5日

  4. int main()
  5. {
  6.         int a;
  7.         int *pa = &a;
  8.         printf("请输入整数a:");
  9.         scanf("%d",&a);//需要取址符
  10.         printf("a = %d\n请再次输入整数a:",a);
  11.         scanf("%d",pa);//存放的就是地址,不需要取址符。
  12.         printf("a = %d\n\n",a);
  13.        
  14.         char b[128];
  15.         printf("请输入字符串b:");
  16.         scanf("%s",b);//数组名存放的是第一个元素的地址。
  17.         printf("b = %s\n",b);
  18.         printf("The address of b is %p\n",b);
  19.         printf("The address of b[0] is %p\n\n",&b[0]);
  20.        
  21.         char h[4] = "zzh";
  22.         int i[3] = {1,2,3};
  23.         float j[3] = {1.1,2.2,3.3};
  24.         double k[3] = {1.11,2.22,3.33};       
  25.         printf("char h[0] -> %p,h[1] -> %p, h[2] -> %p\n",&h[0],&h[1],&h[2]);
  26.         printf("int i[0] -> %p,i[1] -> %p, i[2] -> %p\n",&i[0],&i[1],&i[2]);
  27.         printf("flout j[0] -> %p,j[1] -> %p, j[2] -> %p\n",&j[0],&j[1],&j[2]);
  28.         printf("double k[0] -> %p,k[1] -> %p, k[2] -> %p\n",&k[0],&k[1],&k[2]);

  29.         //还可以用指针定义一个数组       
  30.         char *str = "wasd";
  31.     int r, length;
  32.     length = strlen(str);
  33.     for (r = 0; r < length; r++) {
  34.         printf("%c", str[r]);//用下标法读取元素
  35.     }
  36.     putchar('\n');
  37.     for (r = 0; r < length; r++) {
  38.         printf("%c", *(str+r));//用指针读取元素
  39.     }
  40.     putchar('\n');
  41.        
  42.         return 0;
  43. }
复制代码



运行结果:
请输入整数a:1
a = 1
请再次输入整数a:2
a = 2

请输入字符串b:Hello!
b = Hello!
The address of b is 000000000062FD80
The address of b[0] is 000000000062FD80

char h[0] -> 000000000062FD70,h[1] -> 000000000062FD71, h[2] -> 000000000062FD72
int i[0] -> 000000000062FD60,i[1] -> 000000000062FD64, i[2] -> 000000000062FD68
flout j[0] -> 000000000062FD50,j[1] -> 000000000062FD54, j[2] -> 000000000062FD58
double k[0] -> 000000000062FD30,k[1] -> 000000000062FD38, k[2] -> 000000000062FD40
wasd
wasd

--------------------------------
Process exited after 10.73 seconds with return value 0
请按任意键继续. . .


在FishC学C的第八天
加油!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-6 11:03:00 | 显示全部楼层
坚持
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 03:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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