C语言复习笔记2

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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(8) 支持向量机分类器SVC案例:预测明天是否会下雨

文章目录 案例介绍1 导库导数据&#xff0c;探索特征2 分集&#xff0c;优先探索标签3 探索特征&#xff0c;开始处理特征矩阵3.1 描述性统计与异常值3.2 处理困难特征&#xff1a;日期3.3 处理困难特征&#xff1a;地点3.4 处理分类型变量&#xff1a;缺失值3.5 处理分类型变量…

敏捷ACP.敏捷估计与规划.Mike Cohn.

第一部分 传统规划失败的原因 vs 敏捷规划有效的原因 要回答一个 新产品的范围/进度/资源的组合问题&#xff0c;传统规划过程一般不会产生令人非常满意的答案和最终产品。以下- -些论据可以支持这个结论: ●大约2/3的项目会显著超出费用预算(LedererandPrasad1992) ●产…

网络编程 总结一

一、网络基础&#xff1a; 概念&#xff1a;1> 网络编程的本质就是进程间的通信&#xff0c;只不过进程分布在不同的主机上 2>在跨主机传输过程中&#xff0c;需要确定通信协议后&#xff0c;才可以通信 1. OSI体系结构&#xff08;重点&#xff09; 定义7层模型&…

Vue电商项目--vuex模块开发

vuex状态管理库 vuex是什么&#xff1f; vuex是官方提供的一个插件&#xff0c;状态管理库&#xff0c;集中式管理项目中组件共有的数据。 切记&#xff0c;并不是全部的项目都需要Vuex,如果项目很小&#xff0c;完全不需要vuex,如果项目很大&#xff0c;组件很多&#xff0…

【Leetcode -142.环形链表Ⅱ -143.重排链表】

Leetcode Leetcode -142.环形链表ⅡLeetcode - 143.重排链表 Leetcode -142.环形链表Ⅱ 题目&#xff1a;给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 …

Spring源码解读——高频面试题

Spring IoC的底层实现 1.先通过createBeanFactory创建出一个Bean工厂&#xff08;DefaultListableBeanFactory&#xff09; 2.开始循环创建对象&#xff0c;因为容器中的bean默认都是单例的&#xff0c;所以优先通过getBean、doGetBean从容器中查找&#xff0c;如果找不到的…

QML状态与过渡(States and Transitions)

目录 一 状态&#xff08;States&#xff09; 一 过渡&#xff08;Transitions&#xff09; 通常我们将用户界面描述为一种状态。一个状态定义了一组属性的改变&#xff0c;并且会在一定的条件下被触发。另外在这些状态转化的过程中可以有一个过渡&#xff0c;定义了这些属性…

SpringBoot+vue文件上传下载预览大文件分片上传文件上传进度

文章目录 学习链接上传文件前端后端代码 下载文件a标签下载前端代码后台代码 动态a标签下载前端代码 axios 动态a标签前端代码 浏览器直接输入 预览文件前端代码后端代码 分片上传前后端分别md5加密spark-md5commons-codec 分片上传实现1前端代码后端代码 分片上传实现2前端代…

Spark RDD 持久化(CheckPoint 检查点)

RDD Cache 缓存 RDD 通过 Cache 或者 Persist 方法将前面的计算结果缓存&#xff0c;默认情况下会把数据以缓存 在 JVM 的堆内存中。但是并不是这两个方法被调用时立即缓存&#xff0c;而是触发后面的 action 算 子时&#xff0c;该 RDD 将会被缓存在计算节点的内存中 // cach…

常用排序算法汇总—Python版

一、选择排序 1. 原理&#xff1a; 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的基本思路是将数组按顺序分成已排序部分和未排序部分&#xff0c;然后每次从未排序部分中选择出最小的元素&#xff0c;将其添加到已排序部分的末尾…

【五一创作】【软考:软件设计师】 5 计算机组成与体系结构(三)认证技术 | 计算机可靠性

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于软考中级&#xff1a;软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材与电子版真题,关注私聊即可 …

三范式(详解+例子)

第一范式&#xff08;1NF&#xff09;&#xff1a;每一列都是不可分割的原子数据项&#xff08;什么意思&#xff0c;每一项都不可分割&#xff0c;像下面的表格就能分割&#xff0c;所以它连第一范式都算不上&#xff09; 分割后的样子 &#xff08;它就是第一范式了&#xff…

FPGA学习_01_基础知识(有点劝退,心灵弱小者勿入)

有些人喜欢直接拿开发板看教程开干&#xff0c;我认为了解点历史发展没什么坏处&#xff0c;一些FPGA的基础知识也是同样重要的。 1.1. FPGA的主要厂商 XILINX 占据FPGA绝大部分的市场份额 ALTERA 被 INTEL 167亿美元收购 改名为INTEL LATTICE 被神秘的中国公…

HMM理论学习笔记-隐马尔可夫模型的三个元素、假设和问题

文章目录 概率论基础条件概率全概公式边缘概率联合概率联合概率与边缘概率的关系贝叶斯公式&#xff08;条件联合概率&#xff09;马尔科夫链的概念 HMM简述HMM的三个元素符号定义1、状态转移概率矩阵A2、观测概率矩阵B3、初始状态概率向量π HMM的三个假设1、齐次马尔可夫假设…

Spring Boot使用(基础)

目录 1.Spring Boot是什么? 2.Spring Boot使用 2.1Spring目录介绍 2.2SpringBoot的使用 1.Spring Boot是什么? Spring Boot就是Spring脚手架,就是为了简化Spring开发而诞生的 Spring Boot的优点: 1.快速集成框架,提供了秒级继承各种框架,提供了启动添加依赖的功能 2.内…

简单搭建node后台(笔记用)

毕设过程 mongodb 配置 使用node写后台一些语法运用bug关于安装一款群控软件后&#xff0c;修改了环境变量导致后台崩溃![](https://img-blog.csdnimg.cn/7c684b2e318048b3ad1db78484e10e6a.jpeg) vue管理后台 mongodb 配置 https://blog.csdn.net/weixin_43405300/article/de…

【SPSS】相关分析和偏相关分析详细操作过程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

java的spi机制使用场景讲解和具体使用

八股文背多了&#xff0c;相信大家都听说过一个词&#xff0c;SPI扩展。 有的面试官就很喜欢问这个问题&#xff0c;SpringBoot的自动装配是如何实现的&#xff1f; 基本上&#xff0c;你一说是基于spring的SPI扩展机制&#xff0c;再把spring.factories文件和EnableAutoConf…

C++(多态上)

目录: 1.多态的概念 2.多态的定义和实现 3.虚函数构成重写的特例 4.剖析一道非常经典的题 5.剖析多态的原理 ------------------------------------------------------------------------------------------------------------------------- 1.多态的概念 概念:通俗来说&#…

Word2vec原理+实战学习笔记(二)

来源&#xff1a;投稿 作者&#xff1a;阿克西 编辑&#xff1a;学姐 前篇&#xff1a;Word2vec原理实战学习笔记&#xff08;一&#xff09;​​​​​​​ 视频链接&#xff1a;https://ai.deepshare.net/detail/p_5ee62f90022ee_zFpnlHXA/6 5 对比模型&#xff08;论文Mod…