认识C语言1.3

本文介绍了C语言中的sizeof运算符、基本数据类型、运算符优先级、指针、结构体、静态变量、常量和宏的使用,通过实例展示了这些概念在程序中的应用。
摘要由CSDN通过智能技术生成
//sizeof:计算字节长度,是单目操作符
#include <stdio.h>  
int main()
{
    int arr[10] = { 0 };
    printf("%zu\n", sizeof(arr));//40,计算的是整个数组的大小,
    printf("%zu\n", sizeof(arr[0]));//4,单位字节
    printf("%zu\n", sizeof(arr) / sizeof(arr[0]));//10,计算数组的元素个数
}

//a++:后置;++a前置
//=:赋值;==判断是否相等
#include <stdio.h>  
int main()
{
    int a = 10;
    int b = a++;//后置++,先使用,后++:b = a; a=a+1;
    int b = ++a;//前置++,前++,后使用
    a=a+1;b=a;
}

//C程序模板
#include <stdio.h>            //头文件include:调用printf;std-标准,i-输入,o-输出
int main()                    //主函数main:程序入口,有且仅有一个
{
    int a; int b;             //定义数据类型
    printf("请输入a与b的值");  //printf:打印数据
    scanf("%d %d", &a);       //scanf:输入数据
    int sum = a + b;
    printf("a+b=%d", sum);
    return 0;                 //运行结束,返回
}

//typedef:类型重命名
#include <stdio.h> 
typedef unsigned int min;//unsigned int  <=> uint
int main()
{
    unsigned int num = 0; 
    min num1 = 1;
    return 0;
}

//static:静态,用于修饰变量和函数
//修饰局部变量=扩大生命周期(等同于全局变量);
// 修饰全局变量/函数=外部链接属性变成内部链接属性(等同于只能在该源文件内使用)
#include <stdio.h>
void test()
{
    static int a = 1;//1. static修饰局部变量的时候,局部变量出了作用域,不被销毁的。
                     //本质上,static修饰局部变量的时候,改变了变量的存储位置的。
    a++;
    printf("%d ", a);
}
int main()
{
    int i = 0;
    while (i < 5)
    {
        test();
        i++;
        printf("%d \n",i);
    }
    return 0;
}

//define: 定义常量和宏
 #include <stdio.h>
#define MAX 1000     //define定义标识符常量
#define ADD(x,y) ((x)+(y))
int main()
{
    int a = 10;
    int b = 30;
    int sum = ADD(a, b);
    printf("%d\n", sum);
    return 0;
}

//指针
#include <stdio.h>
int main() 
{
        int a = 10;//向内存申请4个字节,存储10
        // &a;//取地址操作符
        //printf("%p\n", &a);//ex0012ff40
        int* p = &a;  // *说明p就是指针变量;int 说明p指向的对象为int类型
        *p = 20;     //解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象
        printf("%d\n", a); //a=20
        printf("%zu\n", sizeof(int*));  //指针大小:32位为4字节;64位为8字节
        return 0;
}

//struct结构体就是通过自定义类型,从而把一些单一类型组合在一起
#include <stdio.h>
struct student       //结构名
{
    char name[20];  //结构体成员
    int age;
    char sex[10];
    char num[20];
};
void pin(struct student*a2)
{
    printf("%s %d %s %s\n", (*a2).name, (*a2).age, (*a2).sex, (*a2).num);//一
    //结构体指针变量->成员名
    printf("%s %d %s %s \n", a2->name, a2->age,a2->sex,a2->num);//二

}
int main()
{
    struct student a1 = {"liming",18,"male","2024100666" };
    struct student a2 = { "xiaohong",17,"female","2024100656" };
    //结构体对象.成员名;注意要一一对应结构体成员
    printf("%s %d %s %s\n", a1.name, a1.age, a1.sex, a1.num);//三
    pin(&a2);
    return 0;
}

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值