鱼C论坛

 找回密码
 立即注册
查看: 22510|回复: 49

[知识点备忘] S1E21:指针

[复制链接]
发表于 2016-5-5 04:09:50 | 显示全部楼层 |阅读模式
购买主题 已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-30 11:05:12 | 显示全部楼层
指针不管指向什么类型,指针就是个地址,大小为4字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 6 反对 11

使用道具 举报

发表于 2016-9-4 17:08:15 | 显示全部楼层
miu  miu  miu
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-7 12:37:51 | 显示全部楼层
概念上区别好麻烦啊
写程序时我在理解的基础上直接把指针变量、指针、都看做所指向变量的地址,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 1

使用道具 举报

发表于 2016-10-21 12:33:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-22 21:56:48 | 显示全部楼层
0.地址
1.不是
2.1个
3.错误
4.ABC
5.不可取
6.不能 int a,*b;
7.没有给a赋初值
8.a = 100 l-value
0.
  1. #include <stdio.h>

  2. int main() {
  3.     int a, b, c;
  4.     int *d, *e, *f, *g;

  5.     printf("请输入三个数:");
  6.     scanf("%d%d%d", &a, &b, &c);

  7.     d = &a;
  8.     e = &b;
  9.     f = &c;

  10.     if (a > b) {
  11.         g = d;
  12.         d = e;
  13.         e = g;
  14.     }
  15.     if (a > c) {
  16.         g = e;
  17.         e = f;
  18.         f = g;
  19.     }
  20.     if (b > c) {
  21.         g = e;
  22.         e = f;
  23.         f = g;
  24.     }
  25.     printf("%d <= %d <= %d\n", *d, *e, *f);

  26.     return 0;
  27. }
复制代码

1.
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     int a, result, list[255], sum = 0;
  6.     int i, j, *k, *head = list, *end = list;
  7.     for (i = 0,j = 1; i < 255; i ++)
  8.     {
  9.         list[i] = j;
  10.         j += 2;
  11.     }
  12.     printf("请输入一个整数:");
  13.     scanf("%d", &a);
  14.     result = a*a*a;
  15.     while (sum != result)
  16.     {
  17.         if (sum < result) end++;
  18.         else head++;
  19.         for (k = head, sum = 0; k <= end; k++) sum += *k;
  20.     }
  21.     printf("%d = ", result);
  22.     for (k = head; k <= end; k++)
  23.     {
  24.         printf("%d + ", *k);
  25.     }
  26.     printf("\b\b\b    \n");
  27.     system("pause");
  28.     return 0;
  29. }
复制代码

2.
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     char str[5][255];
  6.     int i, j, k, z;
  7.     for (i = 0, j = 0, k = 0; i < 5; i++)
  8.     {
  9.         printf("请输入%d句话:", i + 1);
  10.         for (z = 0; (str[i][z] = getchar()) != '\n'; z++) ;
  11.         str[i][z] = '\0';
  12.         if (strlen(str[j]) < strlen(str[i]))
  13.             j = i;
  14.         if (strlen(str[k]) > strlen(str[i]))
  15.             k = i;
  16.     }
  17.     for (i = 0; i < 5; i++)
  18.     {
  19.         printf("%s\n", str[i]);
  20.     }
  21.     printf("其中最长的是:%s\n", str[k]);
  22.     printf("其中最短的是:%s\n", str[j]);
  23.     system("pause");
  24.     return 0;
  25. }
复制代码

3.
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     int a, result, list[255], sum = 0;
  6.     int z, i, j, *k, *head = list, *end = list;
  7.     char c;
  8.     for (i = 0,j = 1; i < 255; i ++)
  9.     {
  10.         list[i] = j;
  11.         j += 2;
  12.     }
  13.     printf("请输入一个整数:");
  14.     scanf("%d", &a);
  15.     printf("经验证,3~%d 之间。。。。。。。。\n\n是否打印所有。。(y/n):", a);
  16.     while ((c = getchar()) != '\n');
  17.     if ((c = getchar()) == 'n')
  18.     {
  19.         system("pause");
  20.         return 0;
  21.     }
  22.     for (z = 3; z <= a; z++)
  23.     {
  24.         result = z*z*z;
  25.         while (sum != result)
  26.         {
  27.             if (sum < result) end++;
  28.             else head++;
  29.             for (k = head, sum = 0; k <= end; k++) sum += *k;
  30.         }
  31.         printf("%d^%d == %d ==", z, z, result);
  32.         for (k = head; k <= end; k++)
  33.         {
  34.             printf("%d + ", *k);
  35.         }
  36.         printf("\b\b\b    \n");
  37.     }
  38.     system("pause");
  39.     return 0;
  40. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-4-21 11:49:52 | 显示全部楼层
计算机从0开始数起,我们应该从0开始排头
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 21:50:17 | 显示全部楼层
信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-4 17:04:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-20 14:16:55 | 显示全部楼层
那指针有什么用处啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-10 12:46:03 | 显示全部楼层
新概念
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-14 19:38:20 | 显示全部楼层
泳爸 发表于 2016-5-30 11:05
指针不管指向什么类型,指针就是个地址,大小为4字节

指向一字节4b的变量才是4位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2018-10-17 23:01:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-16 15:35:36 | 显示全部楼层
很详细的呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-8 19:00:25 | 显示全部楼层
本帖最后由 大同先生 于 2019-2-8 19:06 编辑
泳爸 发表于 2016-5-30 11:05
指针不管指向什么类型,指针就是个地址,大小为4字节


啊?
那怎么解释。
float b【】={1,2,3,4,5};
float *a;
a=b;
a+=1;
printf(“%f”,*a);
如果是四个字节,加不够啊。(我是小白。。。)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:06:48 | 显示全部楼层
int char 定义的指针有什么区别呢?为什么要这样区分定义?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-14 09:08:47 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-23 13:05:36 | 显示全部楼层
指针变量在内存中是占4个字节吗?怎么我打印出来是8个,是不同编译器会不一样的吗
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         // 申明一个变量并初始化
  5.         int a = 123;
  6.         // 申明一个指针变量 用来存放变量地址 其地址指向的变量类型为int型
  7.         int *na;
  8.         // 给指针变量赋值 占4个字节?
  9.         na = &a;
  10.                
  11.         printf("变量a的内存地址是%p\n", na);
  12.         printf("变量a在内存中的值是%d\n", *na);
  13.         printf("指针变量na占内存的大小为%d字节\n", sizeof(na));
  14.         // 给指针变量的值赋值
  15.         *na = 321;
  16.         printf("现在变量a在内存中的值是%d\n", a);
  17.     return 0;       
  18. }
复制代码


打印内容:
变量a的内存地址是000000000062FE14
变量a在内存中的值是123
指针变量na占内存的大小为8字节
现在变量a在内存中的值是321
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-31 16:25:27 | 显示全部楼层
cshaptx4869 发表于 2019-6-23 13:05
指针变量在内存中是占4个字节吗?怎么我打印出来是8个,是不同编译器会不一样的吗

查阅资料可知,指针在32位系统占4字节,在64位操作系统占8字节。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-31 16:25:58 | 显示全部楼层
大同先生 发表于 2019-2-8 19:00
啊?
那怎么解释。
float b【】={1,2,3,4,5};

看看其他回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 13:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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