C语言基础 入门学习(一)

C语言基础 Day 1

一、定义一个变量

变量:在运行过程中可以改变的。
作用域:花括号之间;
生命周期:程序/函数运行完,变量内存自动回收。
定义变量时可用数字 字母 下划线 组成
局部变量未初始化打印出来为error,默认值的16进制为0xcccccc;

二、定义一个常量

常量:在运行过程中不能改变的。
定义常变量时一定要同时初始化.
const:修饰的变量叫做常变量

三、宏定义

宏定义时变量要大写 。
后面的分号尽量不要加。例如int arr[PI]={};如果加了括号加会报错;会替换成arr[PI;]
重点: 预编译:宏替换,注释的替换(替换为空格);头文件的引入

四、栈与堆

  1. 栈stack(包括栈顶和栈顶);
    栈的特性:先进先出 。 1M—2M;
    main()函数所有定义的变量都存储在堆里。
    2.堆heap
    五、运算符
    ():强转,函数参数;提升优先级
    ~ :按位取反;
    >>:按位右移;
    <<:按位左移
    ^:异或
    &:与
    |:或

    例如: 11:0000 1101;
    ~11:1111 0010;
    11>>1:0000 0110; 右移补符号位 右移相当于除法
    11<<1:0001 1010 左移补数字零 左移相当于乘法
    一个数扩大n倍 ,则左移2位 相当于11*2^n;
    13:0000 1101
    11&13: 0000 1001
    11|13: 0000 1111
    11^13: 0000 0110 异或:一样时为0,不一样为1.

++ --:自增,自减

```int a = 10;
	int  b = a++;//tmp=a;b=tmp;a++;
	int  c = 10 ;
	int  d = ++c;//++c;tmp=c;d=tmp
	printf("a==%d/n b==%d/nc==%d/nd==%d/n",&a&b&c&d);
a== 11       b==10       c==11         d==11

&&、||:逻辑与,逻辑或

int i=1,i2=0,i3=2;
if(i++&&i2++&&i3++)//输出的 i=2,i2=0,i3=2  并且不执行if的内容

int i=1,i2=0,i3=2;
if(i++||i2++||i3++)//输出的 i=2,i2=0,i3=2  并且执行if的内容

&& 全为真执行if语句,if条件内遇到假后面语句不执行。
|| 有一个为真执行if语句,if条件内遇到真后面语句不执行。
*:指针,解引用,乘号

int a = 10;
int* p = &a;
* p = 100;//此时a的值为100
 int** pp = &p;//二级指针
**pp = 1000;//此时a的值为1000


sizeof:求字节数

int* p = &a;
char* p = (char*)&a;`
cout<<sizeof(p);//所有的指针类型字节数都为4
cout<<sizeof p;
cout<<sizeof(int);
cout<<sizeof(++a);//sizeof在编译时期,因此不管里面运算值,不参与运算只求字节数。

猜你喜欢

转载自blog.csdn.net/zhangfei5354/article/details/83020650