c/c++(一)

2022/1/19 1:09:50

本文主要是介绍c/c++(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

c语言编译器

gcc、g++ 
   gcc是用来编译c语言的
   g++是用来编译c++的

c语言的数据类型

基本数据类型
    char	 它的长度是1字节
	short	它的长度是2字节
	int		它的长度是4字节
	long		它的长度是4字节
	float		它的长度是4字节
	double		它的长度是8字节

非基本类型
    结构体
    数组
    指针

结构体

定义
定义结构体的时候,一般用char数组

数组作为成员属性,元素个数写在后面,写在前面会报错

		struct Student {
			char name[20];
		};
		
		Java中是这样写,但是C语言中这样写会报错(高版本的不会报错)
		struct Student {
			char[] name;
		};
		struct Student {
		    char name[20];
		};
		​
		Java中是这样写,但是C语言中这样写会报错
		struct Student {
		    char[] name;
		};

函数定义

定义(与Java一样)

return_type function_name( parameter list )
{
   body of the function
}

声明与定义分开(C++中类的声明与定义分开,与这个原理一样)

return_type function_name( parameter list );

函数的使用

(什么场景需要这样做?比如:一个函数调用在它后面定义的函数就需要这样做。因为C语言编译是按照文件顺序编译并查找符号的。)
​
// 如果没有这句,编译时会报错
int add();
​
int _tmain(int argc, _TCHAR* argv[])
{
   add();
​
   return 0;
}
​
int add() {
   return 1 + 2;
}

函数参数可以写默认值(与Java不同)
1、如果某个位置有了默认值,这个位置之后的所有值都得有默认参数
2、声明与实现只能一个地方有,不然运行时不知道取哪个值

int add(int a = 10) {
    return 1 + 2;
}
​
-------------------------------------------------
​
void add(int a, int b = 10, int c)
{
​
}
​
-------------------------------------------------
    
void add(int a, int b = 20);
​
void add(int a, int b = 10)
{
    cout << a + b << endl;
}

打印

C语言一般用printf函数,c++一般用cout。但是cout没有printf好用

#include <stdio.h>
​
int main() {
    printf("ziya\n");
    
    return 0;
}

加\n与不加\n有什么区别

printf("%s", stu1.name);
printf("%s\n", stu1.name);

格式化参数

%d 十进制有符号整数(常用)
%u 十进制无符号整数(常用)
%f 浮点数
%s 字符串(常用)
%c 单个字符(常用)
%p 指针的值(常用)
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数(常用,打印指针一般会用到这个)
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
​
可以在“%”和字母之间插进数字表示最大场宽
%3d表示输出3位整型数,不够3位右对齐

字符串

c语言中没有字符串只有char数组
char[] a = "12313\0" 这样定义字符串 c语言会根据0进行结束 如果字符串中读取到了0那就表名字符串读取结束 比如char[] a = "12\0313"  这样只会打印12 后面的都不会打印了

指针的创建

int a = 10;
int* p = &a;
int *p = &a;
int** p = &p;

内存图
在这里插入图片描述
指针的长度 32位系统4字节 64位系统8字节

int **** a不管有多少个*长度还是4或者8

指针赋值

int a = 10;
int* p = &a;
int* pp = (int *)10;

指针的操作符

& 取地址符
* 两个作用:定义指针、解引用


这篇关于c/c++(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程