《每天一分钟学习C语言·一》

1、转义字符:\n换行,\t前进一个tab键,\b退格键

2、八进制前面有0,%o或者%#o表示八进制,十六进制前有0X,%0x或者%#0x表示十六进制

3、%u打印无符号数,%g显示小数,类似于%f,但%g后面不补0

4、sizeof输出总的字节数,strlen输出字符串长度(结尾的空字符不算在内)

5、Scanf 在遇到空格或者换行符停止读取,空格或换行符会留在输入流中等待读入语句处理,为避免这种情况可用gets()。gets和getchar都会读入换行符

void mian()
{
	int ch;
	While((ch=getchar()) != ‘y’)
	{
		While((ch=getchar()) != ‘\n’)
		{
			putchar(ch);
		}
	}
}

getchar每次读取一个字符,输入abc回车后,第一个while循环中的getchar先读取a赋值给ch,判断和’y’不相等进入第二个while循环,内循环的getchar继续读取一个字符b赋值给ch,此时ch里面的值已经由a跟新为b,判断不是回车符输出b,内循环还未结束,getchar继续读取下一个字符c与回车符比较,不等输出c,继续读取回车符,这时相等,结束内循环来到外循环

6、不能对未初始化的指针赋值,如int *pt; *pt=5;
当创建一个指针时,系统只分配了用来储存指针本身的内存空间,并不分配用来储存数据的内存空间,因此在使用指针前,必须给它赋予一个已分配的内存地址,比如把一个已存在的变量的地址赋给指针,或者使用malloc函数来分配内存。

7、m=3.14;
%8.3f 空空空3.140
%-8.3f 3.140空空空

8、二位数组

arr[][]
a==&a[0]== &&a[0][0]
a[0] == &a[0][0]
a+1==&a[0]+1==&a[1]
*(a+i) == a[i] == &a[i][0]
*(a+i)+1==&a[i][0]+1==&a[i][1]
*(*(a+i)+j)==a[i][j]

int arr[4][2]={{2,4},{6,8},{1,3},{5,7}};
int (*arr1)[2]=; //arr1指向一个包含两个int值的数组的指针,arr1相当于二维数组arr[][]的arr
arr1=arr;
*arr1[0]==*arr[0]==*&arr[0][0]==2;
arr1[2][1]==3;

函数中声明一个二位数组时可以void fun(int arr[][4])或者void fun(int(*a)[4])

9、extern关键字引用不在同一个文件中的变量或者函数
$1:

int main()
{
	extern int num;  //引用其他文件变量
	extern void fun();  //引用其他文件函数
	fun();
	Printf(%d”,num);
	Return 0;
}

$2:

#include <stdio.h>
int num = 5;
void fun()
{
	Printf(“被其他文件引用”);
}

$1中定义了extern,如果想要引用$2中的变量,那$2中的变量必须是全局变量

10、对一个常量指针无法做修改,如char *arr =”abdec”; 若arr[0]=’b’;
则会报错

在这里插入图片描述
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦回阑珊

一毛不嫌多,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值