标签:
#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;
}
标签:
原文地址:http://www.cnblogs.com/lovling/p/5933236.html