C++语法错误汇总(持续更新)

<---------------------------------------------------------------->
<-----------------------------分割线------------------------------>
<---------------------------------------------------------------->

1、构造结构体完毕时,需要在大括号后面加上分号。

2、指针指向变量前,一定要给指针赋初值。

3、用一个指向数组的指针,输出数组元素的值,可以是:

int arr[10] = {0};
int * pt = arr;
//-------means 1-----//
cout << *pt << " " << *(pt + 9) << endl;
//-------means 2-----//
cout << pt[0] << " " << pt[9] << endl;

4、结构体中定义了一个数组,用指针赋值时不能直接赋予字符串的值,会导致报错。

需要使用strcpy函数或者C++中的string
比如:
//以下结果会报错
15.cpp:15:13: error: incompatible types in assignment of ‘const char [11]’ to ‘char [20]’
		ps->kind = "goldenfish";
#include <iostream>
   
int main()
{
	using namespace std;
  	struct fish
    {
	char kind[20];
	int weight;
	double length;
	};
  	fish * ps = new fish;
    ps->kind = "goldenfish";
    ps->weight = 1;
    ps->length = 1.2;
 
    cout << (*ps).kind << endl;
    delete ps;

    return 0;
 }

5、在指定结构成员时,搞不清楚何时应使用句点运算符,何时应使用箭头运算符

如果结构标识符是结构名,则使用句点运算符;
如果结构标识符是指向结构的指针,则使用箭头运算符。

6、getline用法

exp1:数组
		int data[20];
		getline(data,20);
exp2:结构体
		1new动态分配内存
		struct struction 
		{
			char name [20];
		};
		struction *pt = new struction;
		cin.getline(pt->name, 20);
		
exp3:用string类,而非数组
		#include <string>
		string str1;
		getline(cin,getline);

7、在代码编写中,常量可以用常变量代替更为高效。

比如:
		const int size = 20; 
		char arr[size] = {0};char arr[20];
	更加便于代码管理。

8、strcpy函数

char *strcpy(char *dest, const char *src)
将src字符串内容复制到dest字符串中

9、strcat函数

char *strcat(char *dest, const char *src)
参数
dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。
返回值
该函数返回一个指向最终的目标字符串 dest 的指针。
--->简单来说,给dest追加一个src指向的内容。

10、new使用注意事项

new一定要与delete配合使用!!!
若是int * pt = new int [3],则delete [] pt	

11、数组元素是结构体与数组元素是结构体指针的区别

exp:
	struct Pizza 
	{
		char name[20];
		float diameter;
		float weight;
	}
	
	Pizza * pt = new Pizza [3];
	strcpyp(pt[0].name,"hello world");
	strcpyp((pt+1)->name,"hello world");
//变量pt被声明为一个Pizza结构体数组,而不是一个指向单个Pizza结构体的指针。
//因此,您需要使用数组索引语法pt[index]来访问数组中的每个单独元素
//指针访问结构体成员的标准方式是使用箭头运算符->,而数组访问结构体成员的方式是使用点运算符.
//pt指向的是数组,而非结构体,故用.
//pt是指向数组第一个元素的指针,(pt+1)是指向数组第二个元素的指针,而非指向结构体
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值