C语言复习笔记2

news2024/11/24 12:04:48

1.变量命名只能以数字、字母、下划线组成并且不能以数字开头。

#include<stdio.h>
#include<unistd.h>

//变量名只能由数字字母下划线组成,不能以数字开头
int main()
{
 //int 2b;
  return 0;
}

2.内存中保存的是补码 0的补码取反得补码再求源码是-1。

源码:原始数字

反码:标志位不变,其他位取反

补码:反码+1

#include<stdio.h>
#include<unistd.h>

int main()
{
  int a=0;//内存中保存的是补码 0的补码取反得补码再求源码是-1
  printf("%d\n",~a);
  return 0;
}

 3.全局变量和数组在不初始化时,里面都是0

局部数组不完全初始,其他元素是0

局部变量或者局部数组不初始化,里面是随机值

#include<stdio.h>
#include<unistd.h>

int sa;//全局变量和数组在不初始化时,里面是0

int main()
{
  int arr[10]={1,2,3,4,5,6,7,8,9,10};
  float farr[]={1.1,2.2,3.3,4.5};
  int arr1[10]={1,2,3};//不完全初始化,其它元素为0
  int arr2[10];//局部变量或者局部数组不初始化里面是随机值
  int d;
  int i=0;
  printf("%d\n",sa);
  printf("%d\n",d);
  while(i<10)
  {
    printf("%d ",arr2[i++]);
  }
  printf("\n");
  return 0;
}

  4.register建议将变量放入寄存器中。

#include<stdio.h>
#include<unistd.h>

int main()
{
  register int a =10;//建议将变量a放入寄存器中
  return 0;
} 

   5.void可以用于函数返回值和参数

#include<stdio.h>
#include<unistd.h>

void test(void)
{
  printf("hehe\n");
  return;
  printf("haha\n");
}

int main()
{
  test();
  return 0;
}

6.括号不影响++a和a++的操作顺序

#include<stdio.h>
#include<unistd.h>

int main()
{
  int a = 10;
  int b = (a++);//加括号不好使,一定是先用再加加
  printf("b=%d,a=%d\n",b,a);

  int c=10;
  int d=++c;
  printf("c=%d,d=%d\n",c,d);
  return 0;
}

7.整数除整数仍然得到整数,并且gcc中除0不会抛出异常。

#include<stdio.h>
#include<unistd.h>

int main()
{
  int a=10;
  double b=3;//整数除整数,又得到一个整数,并且gcc除0没有抛异常
  double c = a/b;
  printf("%lf\n",c);

  int d =15;
  int d1 = d>>1;
  printf("d1=%d\n",d1);

  int a1=3;
  int b1=5;
  printf("%d\n",a1&b1);
  printf("%d\n",a1^b1);
  printf("%d\n",a1|b1);
  return 0;
}

 8.extern声明外部变量,在同一工程下的.c文件都可以操作这个变量,对于函数也是,等于扩展了变量和函数的可见性。

static修饰局部变量会改变其生命周期(生命周期伴随程序)作用域仍然是局部的函数体内。

static修饰全局变量会导致这个变量仅在所在的.c文件可见,对于同一工程下的其他.c文件不可见(使用extern也不行)。

static修饰函数会导致仅在这个函数所在的.c文件可见,对于同一工程下的其他.c文件不可见。(使用extern也不行)。

static在C++中的使用主要是静态成员变量和静态成员函数。静态成员函数没有this指针,静态函数只能访问静态成员变量,两者均属于整个类而不属于某个对象,可以用对象或者类名驱动。

#include"test.h"

extern int g_va;
extern int Add(int a, int b);
int main()
{
 printf("g_va=%d\n",g_va);
 int a=10,b=20;
 int num = Add(a,b);
 printf("%d\n",num);
 return 0;
}
#include"test.h"

//static int g_va=1000;//改变了全局变量的链接属性(效果是改变作用域)
int g_va = 1000;

static  int Add(int a, int b)
{
  return a+b;
}

void test()
{

}
#include<stdio.h>
#include<unistd.h>

void test();

 9.typedef给数据类型起别名

#include<stdio.h>
#include<unistd.h>

typedef unsigned int u_int;
int main()
{
  u_int num=-1;
  printf("%u\n",num);
  return 0;
}

 10.类型强转写法

#include<stdio.h>
#include<unistd.h>

int main()
{
  int a = (int)3.14;
  printf("%d\n",a);
  return 0;
}

11.逗号表达式的结果是最后一个式子的结果

#include<stdio.h>
#include<unistd.h>

int main()
{
  int a=10;
  int b=2;
  int c=3;

  int d=(a=4,b=a-5,c=b+2,c-=4);//逗号表达式的结果是最后一个表达式的结果
  printf("a=%d\n",a);
  printf("b=%d\n",b);
  printf("c=%d\n",c);
  printf("d=%d\n",d);
  return 0;
}

 12.函数调用

#include<stdio.h>
#include<unistd.h>

int Add(int x,int y)
{
  return x+y;
}

int main()
{
 
  int x=0,y=0,sum=0;
  scanf("%d %d",&x,&y);
  sum=Add(x,y);
  printf("%d\n",Add(x,y));
  return 0;
}

 

 13if else

#include<stdio.h>
#include<unistd.h>

int main()
{

  int input =0;
  printf("学习编程你能坚持吗?\n");
  scanf("%d",&input);
  if(input)
  {
    printf("工作稳定,坚持进步\n");
  }
  else
  {
    printf("会栽跟头的\n");
  }
  return 0;
}

14.while

#include<stdio.h>
#include<unistd.h>

int main()
{
  int line = 0;
  printf("欢迎入坑\n");

  while(line<=20000)
  {
    printf("敲代码,%d\n",line);
    line++;
  }

  if(line>20000)
  {
    printf("算是会了一些\n");
  }
  return 0;
}

15.static修饰局部变量,改变生命周期

#include<stdio.h>
#include<unistd.h>

void test()
{
  //int a=1;//10个2
  static int a=1;//static 修饰局部变量,改变了其生命周期
  a++;
  printf("%d ",a);
}

int main()
{
int i=0;
while(i<10)
{
  test();
  i++;
}

printf("\n");

  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提升论文影响力的方法

论文发表后&#xff0c;还有一些重要的工作去做&#xff0c;那就是去积极宣传和推广自己的论文&#xff0c;提高自己论文的影响力。这类似于一个电影上映后&#xff0c;主演们还得去做宣传一样&#xff0c;要想办法推销自己的作品。本文将介绍提升论文影响力的方法。 1. 开源数…

xray简单使用指南

前言收到需求如下 用户还需要一个报告 询问了群里的小伙伴推荐使用xray进行扫描 一、下载 https://github.com/chaitin/xray/releases windows下载amd64即可 解压后进入其目录下执行exe程序&#xff0c;帮我们生成一些yaml文件 生成 ca 证书 .\xray_windows_amd64.exe g…

创客匠人:五月,爱成长的力量,有爱必赢

2023年5月4日&#xff0c;创客匠人第六十九届铁军训练营在厦门举办&#xff0c;由创客匠人CEO蒋洪波、CSO张潇峰及HRM何巧婷为厦门总部的伙伴们带来精彩的回顾总结及主题分享。 一、四月总结 为了明确前进奋斗的方向&#xff0c;进一步提升团队战斗力&#xff0c;从而更好地帮助…

Altium Designer中如何在顶层中添加对应端口

转载说明&#xff1a; 大众深度科普 https://jingyan.baidu.com/article/c33e3f4889f327ea15cbb584.html 版权归原作者所有&#xff1b;感谢原作者的分享&#xff1b; 转载到此&#xff0c;主要为了后期查看方便&#xff1b; 本经验简要介绍Altium Designer中如何在顶层中添…

SpringBoot【开发实用篇】---- 热部署

SpringBoot【开发实用篇】---- 热部署 1. 手动启动热部署2. 自动启动热部署3. 参与热部署监控的文件范围配置4. 关闭热部署 什么是热部署&#xff1f;简单说就是你程序改了&#xff0c;现在要重新启动服务器&#xff0c;嫌麻烦&#xff1f;不用重启&#xff0c;服务器会自己悄悄…

人类创新发展的四个阶段:三个核心和一个扩展

纵观人类的发展史&#xff0c;始终伴随着人类的创新过程&#xff0c;这也是人类与其他生物体的最大的区别&#xff0c;别的生物体也就是可以使用工具或者模仿别的生物的动作来制造简单的工具&#xff0c;对工具进行简单的拼接&#xff0c;只有人类是可以进行真正的创造出这个自…

记录-Symbol学习笔记

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 Symbol是JavaScript中的原始数据类型之一&#xff0c;它表示一个唯一的、不可变的值&#xff0c;通常用作对象属性的键值。由于Symbol值是唯一的&#xff0c;因此可以防止对象属性被意外地覆盖或修改。…

Word下划线怎么打?速速get这5个实用方法!

案例&#xff1a;Word下划线怎么打&#xff1f; 【朋友们&#xff0c;最近在写毕业论文&#xff0c;封面文字的下划线打了好久都打不出来&#xff0c;请问大家Word下划线是怎么打的呀&#xff1f;】 在Microsoft Word中&#xff0c;打下划线是一种常见的操作&#xff0c;它可…

Python小姿势 - ## Python与数据库

Python与数据库 简介 当今&#xff0c;数据库是计算机应用中最重要的部分。几乎所有的大型应用都要用到数据库&#xff0c;比如银行、电商、航空、政府、医疗、教育、科研等。数据库的目的是存储数据&#xff0c;并且能够根据用户的需求提供数据。 数据库管理系统&#xff08;D…

QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰

音效渲染是音频或音乐播放器最为重要的后处理模块之一。LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人——闫震海&#xff0c;为大家介绍银河音效在QQ音乐播放器中的创新应用&#xff0c;包括空间环绕效果和音效制作工具等内容。 文/闫震海 编辑/LiveVideoSt…

取代你的可能不是AI,而是比你更会使用AI的人

1、背景 从开始了解AI到现在已经1个月了&#xff0c;最明显的就是&#xff0c;产品层出不穷&#xff0c;以前只有技术人员才关系AI&#xff0c;现在各行各业都在关系AI&#xff0c;都希望通过它提高生产力和创造力&#xff1b; 在当今大数据和人工智能时代&#xff0c;职场和企…

MySQL基础(一)数据库概述

1. 为什么要使用数据库 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。大多数情况下&#xff0c;特别是企业级应用&#xff0c;数据持久化意味着将内存中的数据保存到硬盘上加以”固化”&#xff0c;而持久化的实现过程大多通过各种关系数据库…

Linux网络基础-2

在之前的网络基础博客中&#xff0c;我们对网络的基本概念进行了一个简单的介绍&#xff0c;那么接下来的网络内容中&#xff0c;我们将对网络通信中的典型协议进行详细解释。 我们根据网络协议中的分层来对典型协议进行注意介绍&#xff0c;不过对于物理层的传输我们不做考究…

docker安装mongodb出现bash: mongo: command not found

安装MongoDB容器 -e MONGO_INITDB_ROOT_USERNAME创建管理员账号 -e MONGO_INITDB_ROOT_PASSWORD123456创建密码 映射容器服务的 27017 端口到宿主机的 27017 端口 docker run -d -p 27017:27017 --name mongodb -e MONGO_INITDB_ROOT_USERNAMEadmin -e MONGO_INITDB_ROOT_PAS…

简单分享微信里怎么添加投票活动

今天小编要分享是投票活动&#xff0c;怎么做投票活动&#xff0c;首先要做投票活动是需要用到第三方平台&#xff0c;这样我们才可以快速的制作出投票活动链接&#xff0c;其次我们是在微信小程序上添加投票活动的话&#xff0c;我们需要有微信小程序平台&#xff0c;然后把二…

数字信号处理2:频率

频率这个东西&#xff0c;说实话&#xff0c;我记得好像是初中还是小学的时候&#xff0c;刚接触三角函数的时候老师就已经开始给我们教频率了&#xff0c;但是&#xff0c;因为一直没有碰过信号&#xff0c;所以对频率也就没怎么关注过。 频率就是周期的倒数&#xff0c;这是…

Centos7 DolphinScheduler集群部署

DolphinScheduler集群部署 1 DolphinScheduler集群部署1.1 DolphinScheduler简介1.2 集群规划1.3 前置准备工作1.4 DolphinScheduler集群部署1.4.1 解压DolphinScheduler安装包1.4.2 创建元数据库及用户1.4.3 配置一键部署脚本1.4.4 初始化数据库1.4.5 配置部署用户免密及权限1…

中国网络安全人才需求

如果你是一个想要入门网络安全行业的小白、如果你是网络安全专业在读的大学生、如果你是正在找工作的新手&#xff0c;那么这篇文章你一定要仔细看。毕竟知己知彼百战百胜&#xff0c;知道行业的人才需求才能更好得发挥自己的优势。 当你打开BOSS直聘、拉钩等招聘网站&#xf…

打动人心的故事 | 如何利用文案在Facebook上塑造品牌形象

在当今的数字营销时代&#xff0c;文案已经成为各大平台上不可或缺的元素之一。在Facebook上&#xff0c;一个好的文案能够为品牌带来巨大的曝光率和用户黏性&#xff0c;甚至可以改变用户对品牌的看法。那么&#xff0c;如何利用文案在Facebook上打动人心&#xff0c;塑造品牌…

Office Tool Plus的使用

是否为安装&#xff0c;卸载&#xff0c;激活Office而烦恼&#xff1f; 下载 地址&#xff1a;Office Tool Plus 官方网站 - 一键部署 Office 安装office 先安装Office&#xff0c;Office_Pro_Plus_2021_LTSCProjectVisio_x64_zh_CN_VL_2022-02 注意&#xff0c;要安装批量…