c++_学习笔记0822

这篇学习笔记回顾了C语言的格式化输出,包括%d, %u, %o等,强调for循环中计数器初始化的位置,并介绍了C语言中的宏__func__, __LINE__, __FILE__。还探讨了malloc()函数用于动态内存分配,以及移位运算符<<的作用和bool类型的缺失。" 112994905,10553071,使用QT C++调用Android设置,"['QT开发', 'Android集成', 'JNI接口']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日是二零一伍年八月二十二日,今天在我们的课堂上,德国的学长带我们复习了一下C语言,可以说,也是从另外一个视角带我们看了很多以前看不到的东西。这里做一个综合的笔记。

1、在printf的格式化输出里,usigned int的表示是%u。这里也复习一下其他比较常用的格式化输出:
%d    有符号十进制整数(int)(%ld:长整型数据(long) , %hd:输出短整形。)

%o    无符号八进制整数

%p       指针

%s    对应字符串char*

%x    使用十六进制数字0f的无符号十六进制整数

%%     打印一个百分号

%e           以指数形式打印浮点数

%g   在e和f中选择一种”比较好“的方法打印


2、在C语言的for语句中,计数器(i)的初始化要放在for语句外部。

int main (){
    int i ;
    for ( i = 0 ; i < n ; i ++ ){//code}
    return 0 ;
}

3,学习到一个函数,叫atoi(),它可以把数组型字符串里的数字提取出来,做成整型。比如,这样一个使用方法:
// atoi.cpp
#include <cstdio>
#include <iostream>
#include "stdlib.h"
using namespace std ;

int main (){
	char a[] = " 12345a" ;
	char b[] = " a12345" ;
	char c[] = " 2a13124" ;

	printf("%d\n", atoi(a) ) ;
	printf("%d\n", atoi(b) ) ;
	printf("%d\n", atoi(c) ) ;
	return 0 ;
} 

它的输出结果是:
12345
0
2

这也就证明了它的检索模式:跳过字符串中所有的空格,然后从不是空格的第一个字符开始,直到检索到非数字字符时,停止。


4、了解到c语言中自带的三种自带宏:__func__、__LINE__、__FILE__。他们的类型分别是字符串、整型和字符串。


5、至于第五点,我们先看一个代码:

type* name3 , name4 ;
这个代码看上去声明了两个type的指针,但是,其实只有name3是指针,name4其实还是type的一个对象罢了。其实,这样的写法更好帮助我们理解:
type  *name3 ,  name 4;


6、在函数中如果传入参数是const int* iptr,它代表着,在函数中,无论是修改这个指针所指的对象和对象的值都是不允许的。


7、现在我们来看看c语言的空间申请。c语言的空间申请中有一个函数叫做malloc(),它的函数原型是这样的:
void *malloc(int size) ;其中void*指针是一个全指针,当我们需要使用的时候,可以把它强制转化成我们需要的指针变量。比如我们一般这样调用这个函数:

#include<stdio.h>
#include<malloc.h>
int main()
{
	char *p =  (char *) malloc(100) ;
	free(p) ;
	return 0 ;
}



函数前面的(char * )就是尝试将void*转换成字符的指针。然后,在malloc后是必须要传参数的,它不能像new那样,自动给一个类型的空间。当然,还有重要的一点,malloc函数只能分配,不会对分配的空间初始化。但是我们的calloc函数就可以达到初始化的功能,不过它的传参模式和我们的malloc有点不同。


8、然后说一下<<的使用,它的作用其实是可以将数字做一次二进制提升。也就是在二进制排列表里面把所有数都升以为,相当于:

a << n 三 a * (2^n)


9、c语言里面原来是没有bool值的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值