美文网首页C语言
2021-03-31(指针)

2021-03-31(指针)

作者: 张轻舟 | 来源:发表于2021-03-31 17:58 被阅读0次

    地址:
    内存地址是连续存放着的,地址是一
    指针(变量):存放地址的容器/指向地址的变量
    int a;
    int *p;//定义一个存放整型变量的p,int *是定义
    p=&a;
    int b;
    char [20];
    printf("%d %#x\n",&a,&a);//输出的&a和p一样
    printf("%d %#x\n",p,p);
    printf("%d %#x\n",c,c);
    //三十二位环境下指针所有类型都是四个字节


    指针存放的地址上的值 p
    printf("%d %#x\n",p,
    p);


    指针的运算
    int a =10;
    int b=20;
    int p=&a;
    printf("%d %d %d %d\n"&a,&b,p,(p-1),
    (p-1));
    return 0;

    image.png

    一个指针加一减一移位大小是以它指向类型大小


    int a[10]={1,2,3,4,5,6,7,8,9,0}
    int p;
    p=a;
    for(i=0;i<10;i++)
    {
    printf("%d",
    p);
    p++;
    }

    image.png

    char str[200]="string";
    char p2;
    p=&a[0];
    p2=str;
    for(i=0;i<strlen(str);i++)
    {
    printf("%c",
    p2);
    p2++;
    }


    输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

    include<stdio.h>

    int main()
    {
    int letter = 0,number = 0,blank = 0,others = 0,c;
    int p;
    p=&c;
    while((
    p = getchar()) != '\n'){
    if(*p >= 'A' && *p<='Z' || *p >= 'a' && p <= 'z')
    letter++;
    else if(
    p >= '0' && p <= '9')
    number++;
    else if(
    p == ' ')
    blank++;
    else
    others++;
    }
    printf("%d %d %d %d\n",letter,number,blank,others);
    return 0;
    }


    int rev(char a[]//char *a,int b[],int *c)
    {
    printf("%s\n",a);
    return 0;
    }
    int main()
    {
    char str[200]="nice";
    int a[100]={1,2,3,4,5};
    int x;
    rev(str,a,&x);
    return 0 ;
    }


    //##sizeof 求字节内存大小
    int a;
    b=sizeof(a);

    输出int、char、float、double、long long这五种数据类型的占字节数,空格隔开,共占一行

    #include<stdio.h>
    
    int main()
    
    {
    
        int a;
    
        a=sizeof(int);//特别注意的是sizeof返回类型都是int 型
    
        printf("%d\n",a);
    
        //char w;
    
        a=sizeof(char);
    
        printf("%d\n",a);
    
       // float f;
    
        a=sizeof(float);
    
        printf("%d\n",a);
    
       // double d;
    
        a=sizeof(double);
    
        printf("%d\n",a);
    
       // long long i;
    
        a=sizeof(long long);
    
        printf("%d\n",a);
    
        return 0;
    
    }
    
    image.png

    若一个正整数从左向右读与从右向左读都一样,我们就将其称之为回文数(例如12321、44、3都是回文数)。输入一个正整数,判断它是否是回文数,是则输出YES,否则输出NO。(提示:以字符串形式读取输入的整数)


    #include <stdio.h>
    
    #include <string.h>
    
    int main()
    
    {
    
    int i,n,j=1;
    
    char a[1000];
    
    gets(a);                       //输入字符串
    
    n=strlen(a);                //计算字符长度
    
    for(i=0;i<n/2;i++)      //将字符串分半
    
    {
    
    if(a[i]!=a[n-i-1])         //分半后前一个不等于后一个就输出NO
    
    {
    
       printf("NO");
    
       j=0;                        
    
       break;                    //跳出循环
    
    }
    
    }
    
    if(j)                          // 如果j不等于0就输出YES
    
    printf("YES");
    
    return 0;
    
    }
    

    MessageBox(0,"","",0);
    //##字符串比较大小函数strcmp
    char str[100]="word";
    char str2[100]="world";
    int a;
    a=strcmp(str,str2);
    printf("%d\n",a);
    return 0;
    //相等的时候为零
    单个字符的ASCII相比较

    相关文章

      网友评论

        本文标题:2021-03-31(指针)

        本文链接:https://www.haomeiwen.com/subject/mrhohltx.html