zoukankan      html  css  js  c++  java
  • (2)C语言 基础2

    一、函数

    二、指针

    1.指针是一个用来存储内存地址的变量。

    int * p ;

    定义了一个指针变量p,p中存储的是一个地址,改地址里必定会存储一个int类型的数据。

    *号表示变量p是一个指针。*和指针变量p中间的空格可以没有。

    2.把变量a的地址存到指针变量p中。

    p=&a;

    打印p变量存储的内容,也就是变量a的所在地址

    #include <stdio.h>
    
    int main()
    {
        int a = 5;
        int p = &a;
        printf("%p
    ", p); //打印指针变量p里存的内容
        printf("%p
    ", &a);//打印变量a的地址
        printf("%x
    ", p);//小写16进制
        printf("%#X
    ", p);//以0X开头的大写16进制
        return 0;
    }

     打印地址

     每个16进制对应4位,本图对应24位地址。

     3.指针通信

    #include <stdio.h>
    void change(int * i, int * j);
    
    int main()
    {
        int x = 5;
        int y = 6;
        change(&x, &y);//
        printf("x=%d,y=%d",x,y);
    
    }
    void change(int * i,int * j)//定义两个指针变量
    {
        int temp;
        temp = *i;
        *i = *j;
        *j = temp;
    }

    三、数组

     1.初始化数组

    如果超出数量范围,编译器会提示错误

    2.获得总个数

        printf("%d
    ", sizeof(a)/sizeof(a[0]));//用总的字节数除以单个的字节数,得到初始化开辟的数量。
        printf("%d
    ", sizeof(b)/sizeof(b[0]));//无论有没有填满数组

     3.没有的位置补零.

        for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
        {
            printf("%d
    ", a[i]);
        }

     4.初始化器    C99新特性

    #include <stdio.h>
    
    int main()
    {
        int a[8] = { 1,2,[4] = 8,9,[1]=3 };//初始化器,指定位置赋值,未初始化为0
        for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
        {
            printf("%d
    ", a[i]);
        }
        return 0;
    }

     结果

     

     5.赋值

    不能把一个数组赋值给另一个数组,

    除初始化外,不能使用花括号,

    注意数组下表越界问题,

  • 相关阅读:
    SM2加解密代码示例
    RSA加解密代码示例
    base64加解密示例
    Hutool-数据类型转换
    Hutool工具-定时任务的使用
    Java面试题(5)mybatis、数据库
    Java面试题(4)Spring
    List、List<object>、List<?>三者的区别
    关于鉴权,看懂这篇就够了
    raft之一致性算法raft
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/10046606.html
Copyright © 2011-2022 走看看