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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值