【手撕C语言基础】运算符(2)

本文介绍了C语言中的基本运算符,包括赋值运算符如+=、-=等,条件运算符(三目运算符),以及指针相关的取址和解引用运算符。同时讲解了sizeof用于计算内存大小,以及如何利用它确定数组元素个数。文章强调了正确使用这些运算符对编写高效C程序的重要性。
摘要由CSDN通过智能技术生成
  • (꒪ꇴ꒪ ),hello我是祐言
  • 博客主页:C语言基础,Linux基础,软件配置领域博主🌍
  • 快上🚘,一起学习!
  • 送给读者的一句鸡汤🤔:
  • 集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏

接上文

5.赋值运算符以及复合运算符应用

=赋值
+=加等于
-=减等于
*=乘等于
/=除等于
%=模等于

左值:代表一块内存
右值:表达式,一定是一个确定的常量

        举例:

#include <stdio.h>
int main()
{
  int x = 2;
    printf("%d \n",x +=2);
    printf("%d \n",x -=2);
    printf("%d \n",x *=2);
    printf("%d \n",x /=2);
    printf("%d \n",x %=2);
 return 0;
}

         结果:可以看出+=赋值之后,就是x = x+2 的意思,其他赋值同理。

        补充一下 :

==判断相等

        举例:

#include <stdio.h>
int main()
{
  int x = 2;
  int y = 2;
    if  (x == y)
    printf ("x等于y\n");
 return 0;
}

 6.求字节运算符

sizeof计算数组大小,单位是字节

        举例:

#include <stdio.h>
int main()
{
  int x = 10;
  int size[] = {0,1,2,3,4,5};
    printf("%d\n",sizeof(x));
    printf("%d\n",sizeof(size));
 return 0;
}

        另外,我们还可以利用sizeof的来计算一下某数组的元素大小,举例如下

  int size[] = {0,1,2,3,4,5};
    printf("%d\n",sizeof(size)/sizeof(size[0]));//用总字节除以数组的单个字符占字节,得到元素个数

    7.条件运算符   

 8.return运算符



int main() 
{
  
	
    return 0;
}

9.与指针相关的运算符

        这里还要提一嘴解引用运算符,它用于访问指针所指向的值顾名思义:解释指针变量所存储的那个地址的内存。

        在C语言中,解引用运算符使用符号 ,将其放在指针变量前面。通过解引用运算符,我们可以从指针变量中获取它所指向的内存位置的值。

10.三目运算符

        三目运算符(也称为条件运算符)是C语言中的一种特殊运算符,其形式为:

判断语句?真:假

        它的作用是根据条件表达式的结果选择性地执行不同的操作。

以下是一个三目运算符的例子:

#include <stdio.h>

int main() {
    int x = 10;
    int y = 5;

    int max = (x > y) ? x : y;
    printf("较大的数是:%d\n", max);

    return 0;
}

        在这个例子中,我们使用三目运算符来比较变量x和y的值,然后将较大的值赋给变量max。在运行时,条件表达式(x > y)会计算x是否大于y,如果成立则返回x的值,否则返回y的值。最终,将较大的值打印输出。

        注意:三目运算符的使用应尽量简洁明了,避免嵌套过多或过于复杂的表达式,以免降低代码的可读性和维护性。

11.取址运算符

        在C语言中,取址运算符用来获取变量的内存地址。取址运算符的符号是 &,它放在变量前面。使用取址运算符可以将变量的内存地址作为指针值返回,从而允许程序直接操作变量所在的内存位置。

以下是取址运算符的例子:

#include <stdio.h>

int main() {
    int num = 42;
    int *ptr = &num; // 使用取址运算符获取num的地址,并将其存储在指针ptr中

    printf("num的值为:%d\n", num);
    printf("num的内存地址:%p\n", &num); // 使用%p格式打印地址
    printf("ptr指向的值:%d\n", *ptr); // 使用*运算符获取ptr指向的值

    return 0;
}

         取址运算符在指针和函数中的使用非常重要,在后续的学习中,你会发现它在处理内存和函数参数传递时非常有用。

最后介绍一下优先级与结和性:

         今天的分享就到这里啦~

        更多C语言相关文章,关注专栏:

手撕C语言

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉感谢关注🎉
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言中,没有内置的ArrayList数据结构,但是我们可以通过使用指针和动态内存分配来实现类似ArrayList的功能。 下面是一个简单的示例代码,展示了如何在C语言中创建一个类似ArrayList的数据结构: ```c #include <stdio.h> #include <stdlib.h> typedef struct { int* data; // 存储数据的数组 int size; // 当前存储的元素个数 int capacity; // 数组的容量 } ArrayList; // 初始化ArrayList void init(ArrayList* list) { list->data = NULL; list->size = 0; list->capacity = 0; } // 向ArrayList中添加元素 void add(ArrayList* list, int element) { if (list->size == list->capacity) { // 如果数组已满,则扩展数组的容量 int newCapacity = (list->capacity == 0) ? 1 : list->capacity * 2; int* newData = (int*)realloc(list->data, newCapacity * sizeof(int)); if (newData == NULL) { printf("内存分配失败\n"); return; } list->data = newData; list->capacity = newCapacity; } list->data[list->size] = element; list->size++; } // 获取ArrayList中指定索引的元素 int get(ArrayList* list, int index) { if (index < 0 || index >= list->size) { printf("索引越界\n"); return -1; } return list->data[index]; } // 释放ArrayList占用的内存 void freeArrayList(ArrayList* list) { free(list->data); list->data = NULL; list->size = 0; list->capacity = 0; } int main() { ArrayList list; init(&list); add(&list, 10); add(&list, 20); add(&list, 30); printf("元素个数:%d\n", list.size); printf("第一个元素:%d\n", get(&list, 0)); printf("第二个元素:%d\n", get(&list, 1)); printf("第三个元素:%d\n", get(&list, 2)); freeArrayList(&list); return 0; } ``` 这段代码演示了如何使用指针和动态内存分配来创建一个类似ArrayList的数据结构。你可以通过调用`add`函数向ArrayList中添加元素,通过调用`get`函数获取指定索引的元素。在使用完ArrayList后,记得调用`freeArrayList`函数释放占用的内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祐言QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值