C语言入门篇(八)下

简介: C语言入门篇(八)

实例4:在计算数据类型所占内存大小时,可以使用 sizeof 操作数


🍥 sizeof不是函数,是操作符

🍥 sizeof计算的是类型创建变量的大小,单位是字节


//sizeof 操作符:
#include <stdio.h>
int main()
{
 int a = 10;
 printf("%d\n", sizeof(a));
 printf("%d\n", sizeof(int));
 printf("%d\n", sizeof a);
 //printf("%d\n", sizeof int);//不允许这样计算,说明 sizeof 不是函数
 return 0;
}

实例5: ~


// ~ 按补码二进制位取反
#include<stdio.h>
int main()
{
  int a = 0;
  printf("%d\n", ~a);
  //00000000000000000000000000000000
  //11111111111111111111111111111111 - 补码
  //11111111111111111111111111111110
  //10000000000000000000000000000001 -1
  return 0;
}

🍤 运行结果:


18e86b57cca3bfc5b57a46b1dc794af8_ce9bdca6320c4944b4823a042b2f4fbf.png


实例6:前置 ++ 、 后置 ++


//前置++:先对变量进行自增,然后使用该变量
int main()
{
  int a = 1;
  int b = ++a;//前置++,先++,后使用
  //a=a+1,b=a
  printf("a=%d b=%d\n", a, b);//2 2
  return 0;
}

🍤 运行结果:


36d4abeca49ec35e717e14dbd9596186_d1ce561507c84c7eae1ed86c06af3c3e.png


//后置++:先对a先使用,再自增
#include<stdio.h>
int main()
{
  int a = 1;
  int b = a++;//后置++,先使用,后++
  //b=a,a=a+1
  printf("a=%d b=%d\n", a, b);//2 1
  return 0;
}

🍤 运行结果:

0de886771eb2259671facba30b2018c6_eb3aee7e00e94bc39d099cf1bb302016.png


前置--、后置--等同


6.2 sizeof 和 数组

实例:


#include <stdio.h>
void test1(int arr[])
{
  printf("%d\n", sizeof(arr));//(2)
}
void test2(char ch[])
{
  printf("%d\n", sizeof(ch));//(4)
}
int main()
{
  int arr[10] = { 0 };
  char ch[10] = { 0 };
  printf("%d\n", sizeof(arr));//(1)
  printf("%d\n", sizeof(ch));//(3)
  test1(arr);
  test2(ch);
  return 0;
}

🍤 运行结果:


60784845ce3daabce1e97199a3aeb7ec_27868b770a734d448cffc6befd7512a5.png


7. 关系操作符


>
>=
<
<=
!=   用于测试“不相等”
==      用于测试“相等”

🍩编写过程中 == 和 = 不要写错


实例:判断闰年


#include<stdio.h>
int main()
{
  int y = 0;
  scanf("%d", &y);
  //1. 能被4整除,并且不能被100整除
  //2. 能被400整除是闰年
  if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
  {
    printf("闰年\n");
  }
  else
  {
    printf("不是闰年\n");
  }
  return 0;
}


8. 逻辑操作符


&&     逻辑与--并且
||     逻辑或--或者
1&2----->0
1&&2---->1
// & 两边二进制补码计算,相同为1,不同为0
// && 两边同为真,结果也是真,用 1 表示;只要有一个为假,结果就是假,用 0 表示
1|2----->3
1||2---->1
// | 两边二进制补码进行计算,只要有一个 1 就是 1;当两边都为 0 时,才是0
// || 两边只有一个真时,就为真;都是假时,才为假

实例1:


// &&
#include <stdio.h>
int main()
{
  int i = 0, a = 0, b = 2, c = 3, d = 4;
  i = a++ && ++b && d++;
  printf("a = %d b = %d c = %d d = %d\n", a, b, c, d);
  return 0;
}

🍤 运行结果:


3b3fa339e472090102cae8a7e54a8538_3e84235b97a54f81a7735834cf0d9d51.png


实例2:


// ||
#include <stdio.h>
int main()
{
  int i = 0, a = 0, b = 2, c = 3, d = 4;
  i = a++||++b||d++;
  printf("a = %d b = %d c = %d d = %d\n", a, b, c, d);
  return 0;
}

🍤 运行结果:


7c24212facc2861ccb5d695abf8f1878_9c73b9f636304796b2cdd28600c8fd9c.png


9. 条件操作符


exp1 ? exp2 : exp3

实例:


//如果 a>5,则 b=3
//如果 a<=5,则 b=-3
if (a > 5)
        b = 3;
else
        b = -3;

上述代码可以转换成条件表达式:


#include <stdio.h>
int main()
{
  int a ;
  scanf("%d", &a);
  int b = a > 5 ? 3 : -3;
  printf("%d\n", b);
  return 0;
}

🍤 运行结果:


a9eec872f75d9f2fcf4314dbb7332902_7b8f2d818cfe4e28b199e7e98fec87fd.png


使用条件表达式实现找两个数中较大值


#include <stdio.h>
int main()
{
  int a, b ;
  scanf("%d %d", &a, &b);
  int c = a > b ? a : b;
  printf("%d\n", c);
  return 0;
}

相关文章
|
1月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
51 2
|
1月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
28 1
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
3月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
4月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
67 4
【C语言入门】初识C语言:掌握编程的基石
|
3月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
57 1
|
4月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
105 2
|
4月前
|
前端开发 C语言 C++
C语言入门02---环境搭建
C语言入门02---环境搭建
|
5月前
|
存储 Web App开发 算法
c语言的简单入门
熟悉c语言(简单入门)
|
5月前
|
JavaScript C语言