鱼C论坛

 找回密码
 立即注册
查看: 23030|回复: 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.
#include <stdio.h>

int main() {
    int a, b, c;
    int *d, *e, *f, *g;

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

    d = &a;
    e = &b;
    f = &c;

    if (a > b) {
        g = d;
        d = e;
        e = g;
    }
    if (a > c) {
        g = e;
        e = f;
        f = g;
    }
    if (b > c) {
        g = e;
        e = f;
        f = g;
    }
    printf("%d <= %d <= %d\n", *d, *e, *f);

    return 0;
}
1.
#include <stdio.h>
#include <string.h>
int main()
{
    int a, result, list[255], sum = 0;
    int i, j, *k, *head = list, *end = list;
    for (i = 0,j = 1; i < 255; i ++)
    {
        list[i] = j;
        j += 2;
    }
    printf("请输入一个整数:");
    scanf("%d", &a);
    result = a*a*a;
    while (sum != result)
    {
        if (sum < result) end++;
        else head++;
        for (k = head, sum = 0; k <= end; k++) sum += *k;
    }
    printf("%d = ", result);
    for (k = head; k <= end; k++)
    {
        printf("%d + ", *k);
    }
    printf("\b\b\b    \n");
    system("pause");
    return 0;
}
2.
#include <stdio.h>
#include <string.h>
int main()
{
    char str[5][255];
    int i, j, k, z;
    for (i = 0, j = 0, k = 0; i < 5; i++)
    {
        printf("请输入%d句话:", i + 1);
        for (z = 0; (str[i][z] = getchar()) != '\n'; z++) ;
        str[i][z] = '\0';
        if (strlen(str[j]) < strlen(str[i]))
            j = i;
        if (strlen(str[k]) > strlen(str[i]))
            k = i;
    }
    for (i = 0; i < 5; i++)
    {
        printf("%s\n", str[i]);
    }
    printf("其中最长的是:%s\n", str[k]);
    printf("其中最短的是:%s\n", str[j]);
    system("pause");
    return 0;
}
3.
#include <stdio.h>
#include <string.h>
int main()
{
    int a, result, list[255], sum = 0;
    int z, i, j, *k, *head = list, *end = list;
    char c;
    for (i = 0,j = 1; i < 255; i ++)
    {
        list[i] = j;
        j += 2;
    }
    printf("请输入一个整数:");
    scanf("%d", &a);
    printf("经验证,3~%d 之间。。。。。。。。\n\n是否打印所有。。(y/n):", a);
    while ((c = getchar()) != '\n');
    if ((c = getchar()) == 'n')
    {
        system("pause");
        return 0;
    }
    for (z = 3; z <= a; z++)
    {
        result = z*z*z;
        while (sum != result)
        {
            if (sum < result) end++;
            else head++;
            for (k = head, sum = 0; k <= end; k++) sum += *k;
        }
        printf("%d^%d == %d ==", z, z, result);
        for (k = head; k <= end; k++)
        {
            printf("%d + ", *k);
        }
        printf("\b\b\b    \n");
    }
    system("pause");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> 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个,是不同编译器会不一样的吗
#include <stdio.h>

int main()
{
        // 申明一个变量并初始化 
        int a = 123;
        // 申明一个指针变量 用来存放变量地址 其地址指向的变量类型为int型 
        int *na;
        // 给指针变量赋值 占4个字节? 
        na = &a;
                
        printf("变量a的内存地址是%p\n", na);
        printf("变量a在内存中的值是%d\n", *na); 
        printf("指针变量na占内存的大小为%d字节\n", sizeof(na)); 
        // 给指针变量的值赋值 
        *na = 321;
        printf("现在变量a在内存中的值是%d\n", a); 
    return 0;        
} 

打印内容:
变量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-6-19 23:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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