#define SEC_YEAR (60LL * 60LL * 24LL *365LL) //变量类型修饰为longlong防止溢出
#include <stdio.h>
#include <stdlib.h>
int i = 0;
int ret = 0;
int main()
{
while(1)
{
ret = scanf("%d",&i);
printf("接受%d\n",i);
if(ret != 1)
{
printf("输入类型错\n");
break;
}
}
return 0;
}
若不加入输入类型判断会进入死循环。
利用getchar让scanf连续输入
-----指针---------------------------------------------------------------------------------------------------------------------
void *
浅谈c语言中的void指针 - 知乎 (zhihu.com)
指针和多级指针
#include <stdio.h>
#include <stdlib.h>
int i = 77;
int *p = &i;
int **q = &p;
int ***q2 = &q;
int main()
{
printf("data%d\n",i);
printf("data%d\n",*p);
printf("data%d\n",**q);
printf("data%d\n",***q2);
return 0;
}
for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++): sizeof(a) = a整个数组内存大小,sizeof(a[0]) = 数组元素内存大小 可以算出数组元素数量
{
。。。
}
字符串常量不能修改,但是可以通过更改指针的指向来更改字符串的值
const 把某些内容常量化
const int data = 666; //data变常量,虽然用const修饰了,但是还是可以用指针的方式修改他的值
const int *p; //常量指针 指针指向可以变化,但是指向的空间的值不能变化
int *const p; //指针常量 指针指向不能变化,指向的空间的值可以变化
数组指针与指针数组
数组指针
int (*p)[3];
指针数组
int *arr[3];
char *na[5] = {"ssss","sacaca","sacaca","saca",""csacac"};
略。。。