首页 > 代码库 > C/C++ 语法初步(1)

C/C++ 语法初步(1)

#include <stdio.h>#include <stdlib.h>#include <malloc.h>//判断一个数是否质数bool IsPrimeNumber(int number){    int i = 2;    for (i; i < number; i++)  if (number%i == 0)  break;    if (i == number)  return true;    else  return false;}//利用指针,互换两个整数void replacement(int *p, int *q){    int t = *q; *q = *p; *p = t;}//利用指针通过调用函数的方式遍历数组void TraverseAttr(int * Attr, int AttrLength){    for (int i = 0; i < AttrLength; i++){        printf("数组第 %d 个元素a[%d] = %d\n", i + 1, i, Attr[i]);    }}//动态变量的调用void DynamicVariables(int * p, bool IsFree){    *p = 1000;    if(IsFree)  free(p);  //动态定义的变量可以由 free() 函数释放}//跨函数调用动态变量void AcrossFunctionCall(int **p){    *p = (int *)malloc(sizeof(int));    **p = 100;}//定义结构体(一个学生信息管理实例)struct Student{    char name[9];  //一个汉字占两个字符,字符串默认在结尾处增加 ‘\0‘ 字符    char sex;    int age;    float score;};int main(void){ //(*)输入输出控制符    /*          %i-- - 输出一个整型数        %d-- - 输出一个整型数        %f-- - 输出一个浮点数        %e-- - 输出一个浮点数,科学计数法        %g-- - 输出一个浮点数,当指数小于 - 4或者大于5,则运用科学计数法,否则正常显示浮点数        %c-- - 输出一个字符        %o-- - 输出一个八进制的整型数,前面不带0        %#o-- -输出一个八进制的整型数,前面带0        %x-- - 输出一个十六进制的整型数,前面不带0x        %#x-- -输出一个十六进制的整型数,前面带0x, 如果x大写,则显示的时候也是大写        %u-- - 不带符号的十进制整数        %%-- - 输出一个%.    *///(*)转义字符    /*        \a   : 蜂鸣,响铃         \b   : 回退:向后退一格         \f   : 换页         \n   : 换行,光标到下行行首         \r   : 回车,光标到本行行首         \t   : 水平制表         \v   : 垂直制表         \\   : 反斜杠         \‘   : 单引号         \"   : 双引号         \?   : 问号         \0   : 空字符        \ddd : 三位八进制         \xhh : 二位十六进制     *///(1)函数的调用 求一个数是否为质数    /*int i;    while (true){        printf("请输入一个正整数 n=");        scanf_s("%d", &i);        if (IsPrimeNumber(i))            printf("该整数 %d 是一个质数\n", i);        else            printf("该整数 %d 不是一个质数\n", i);    }*/    //(2)for循环的使用 打印三角形    /*while (true){        int size;        printf("请输入直角三角形的直角边边长 n=");        scanf_s("%d", &size);        for (int i = size; i >= 0; i--){            for (int j = 0; j <= size; j++){                if (j == size)                    printf("0 \n");                else if (j >= i)                    printf("0 ");                else                    printf("  ");            }        }    }*///(3)指针 普通    /*int a = 3, b = 5;    printf("替换前 a = %d, b = %d\n", a, b);    replacement(&a, &b);    printf("替换后 a = %d, b = %d\n", a, b);    printf("%d", sizeof(int *));  //指针变量占四个字节,sizeof 获取变量所占内存*///(4)指针 静态数组    /*int attr[5] = {0,1,2,4,5};    printf("地址 %#X --- %#X\n", attr, &attr[0]); //attr是数组元素 attr[0] 的地址,相当于 &attr[0]    TraverseAttr(attr, 5);*///(5)指针 动态内存分配    /*int *p = (int *)malloc(sizeof(int));   //定义动态变量引用头文件 #include <malloc.h>    *p = 10;     printf("动态变量定义时 *p = %d\n", *p);    DynamicVariables(p, false);    printf("调用函数处理后 *p = %d\n", *p);    DynamicVariables(p, true);    printf("动态变量释放后 *p = %d\n", *p);*///(6)指针 动态数组    /*int *attr;    int len = 1;  //定义数组长度    attr = (int *)malloc(sizeof(int)* len);  //动态构造了一个一维数组    printf("请输入数组的长度,一个正整数 length = ");    scanf_s("%d", &len);    realloc(attr, len);    //扩充或收缩数组     for (int i = 0; i < len; i++){        printf("请输入数组的第 %d 元素a[%d] = ", i + 1, i);        scanf_s("%d", &attr[i]);    }    for (int i = 0; i < len; i++){        printf("您定义的数组的第 %d 元素a[%d] = %d\n", i + 1, i, attr[i]);    }*///(7)指针 跨函数调用动态变量    /*int *p;    AcrossFunctionCall(&p);    printf("%d\n",*p);*///(8)结构体  定义变量    /*struct Student xiaoming = {"小明名啊",‘1‘,18,90};      struct Student *xm = &xiaoming;    xm->age = 18;    printf("%s\n", xm->name);    printf("%d\n", xiaoming.age);*///程序结束等待语句    system("pause");   //定以前引用 #include <stdlib.h>    return 0;}

 

C/C++ 语法初步(1)