标C编程笔记day01~day03 变量、运算符、指针、函数、输入输出

c/c++语法,运算符:
    sizeof()  --参数为变量或类型,计算变量或类型的字节大小
    a==b?c:d  --三目运算符,a==b时,返回c,否则返回d
    算术运算符:+,-,*,/,%
    自加、自减运算:++,--
    位运算:
        ~ --取反,正数取反为 -(n+1) ,负数取反为 n-1
        & --与,两个同为1才为1,否则为0
        | --或,两个同为0才为0,否则为1
        ^ --异或,两个相同为0,两个不同为1
        <<n --左移n位,等于原数乘以2的n次方
        >>n --右移n位,等于原数除以2的n次方
&[变量]  --取变量的开始地址
*[地址]  --取地址对应的变量值
%p       --printf中用来输出地址格式的变量
如果输入缓冲区有垃圾数据,可用下面方式取走:
if(scanf("%d",&data)==0)//读取失败返回0
{
    scanf("%*[^\n]");//读取掉\n之前的所有字符
    scanf("%*c");//读取掉\n
}
控制台程序屏幕输出字符的条件:
    1、遇到\n
    2、程序结束
    3、输出缓冲区满(4K)
    4、人工刷新fflush(stdout)
数组元素初始化:
    int a[5]={1,2}  --第1,2个值为1,2,其他值为0
    int a[5]{[3]=10,[4]=20}; --下标为3,4的值设置为10,20,其他为0
    int a[10][10]={{0}}; --定义并将二维数据里值全部设置为0

屏幕显示颜色设置:\033[显示方式;前景色;背景色m
    默认设置为:\033[0m

数学函数头文件(编译时,可能要加 -lm 选项):
math.h
    sqrt()--平方根
    pow() --n次方

生成随机数:
#include<time.h>
#include<stdlib.h>
srand(time(0));
int data=rand()%100;--生成100以内的随机数

指针基本操作:
int a=10;
int *pa=&a;//pa取a的地址
int b=*pa;//b取pa地址上的值,b的值变为10
int arr[10]={1,2,3};//不可使用*arr++来取值,因为arr是地址常量,不可变
int *p=&arr[0];//或int *p=arr; //取数组首地址也就是数组第一个元素的地址,可用*p++循环数组,也可用*(p+i)来取第i个元素的值。

控制台基本输入输出:
char name[20]={0};
fgets(name,20,stdin);//获取输入的最多20个字符
//scanf("%s",name);//获取输入字符,但不能读取空格
char *s="abcdef";
printf("%s",s);//这里要传入的不是值(*s),而是字符数组首地址(s)
字符串(字符数组)操作函数:#include<string.h>
    复制:char * strcpy(char* dest,char* src);//返回desc的地址
    追加:char * strcat(char* dest,char* src);
    长度:strlen(char * str);//返回字符串长度,不包括'\0'
    比较:strcmp(cahr * s1,char * s2);//相等返回0,s1>s2返回正数,否则返回负数

入口函数参数及数据:

    int main(int argc,char* argv[]);//argc为参数个数,agrv为各参数值,类型为数组。



上一篇:Photoshop绘制逼真的红色篮球图标教程


下一篇:Docker启动时的报错汇总